【问题标题】:Order by not working通过不工作订购
【发布时间】:2016-01-16 07:37:28
【问题描述】:

我正在尝试按日期排序并显示结果,但更改 asc 或 desc 对视图中订单的外观没有影响。

型号:

  function DisplayLatest() 
  {
    $query = $this->db->query("SELECT * FROM CIUploads INNER JOIN CIUsers ON CIUploads.UserID = CIUsers.UserID");
    $this->db->order_by("UploadLikes","asc");
    return $query->result();
  }

控制器:

function index()
{
    $this->load->view('../templates/header.php'); 
    $this->load->model('Category_model');
    $data['allwork'] = $this->Category_model->DisplayLatest();
    $this->load->view('Latest_view', $data); 
    $this->load->view('../templates/footer.php'); 
}

查看:

        foreach ($allwork as $value) //joined display//
        {
            echo "<div class='col-lg-4 display-item'>";
                echo "<a href='BLANK'' class='display-link'>";
                    echo "<div class='caption'>";
                        echo "<div class='caption-content'>";
                            echo "<i class='fa fa-eye fa-3x'></i>";
                        echo "</div>";
                    echo "</div>";
                    echo "<img src='".base_url("/application/uploads/")."/".$value->UploadedAt."' class='img-responsive'>";
                echo "</a>";
                echo "<div class='showcase-information'>";
                    echo "<p class='caption'>&quot;".$value->UploadTitle."&quot;</p>";
                    echo "<p class='stats'><i class='fa fa-eye'></i>".$value->UploadViews." <i class='fa fa-heart'></i>".$value->UploadLikes." <i class='fa fa-comments'></i>".$value->UploadComments." </p>";
                echo "</div>";

                echo "<a href='BLANK'><div class='showcase-user'>";
                    echo "<p>".$value->Username."<img src=".$value->ProfileImg." class='img-circle'></p>";
                echo "</a>";

                        echo "</div>";
                    echo "</div>";

}

(我意识到我通过上传喜欢进行排序,因为这是一个整数并且应该可以工作)

【问题讨论】:

  • 为什么不在 $query 变量中添加 order by 子句?

标签: php sql codeigniter


【解决方案1】:

Codeigniter 查询生成器类/活动记录

http://www.codeigniter.com/user_guide/database/query_builder.html

模型函数

public function display_latest() {
    $this->db->select('*');    
    $this->db->from($this->db->dbprefix . 'CIUploads');
    $this->db->join($this->db->dbprefix . 'CIUsers', 'CIUsers.UserID = CIUploads.UserID');
    $this->db->order_by("CIUploads.UploadLikes","ASC");
    $query = $this->db->get();

   if ($query->num_rows() > 0 ) {

        return $query->results();
        // return $query->results_array

    } else {

        return FALSE;

    }

}

我认为函数display_latest()一直使用大写字母不是一个好习惯

在控制器上调用模型时在 codeigniter 上你没有

文件名示例:Some_name.php

<?php 

class Some_name extends CI_Controller {

public function __construct() {
    parent::__construct();
    // You do not need the upper case letter here 
    $this->load->model('category_model');
}

function index() {
    /*

      If view is stored in views folder you do not need to use.php
      $this->load->view('templates/header.php');

    */

    $this->load->view('templates/header'); 

    $data['allwork'] = $this->category_model->display_latest();

    /* 

    Not sure why you have upper case for view you do not need to on view files 

    Only Controllers / Models / libraries file names and class names have first letter upper case.

    */

    $this->load->view('latest_view', $data); 

    $this->load->view('templates/footer'); 
}

}

【讨论】:

    【解决方案2】:

    当您使用$this-&gt;db-&gt;query() 时,这不是编写查询的正确方式。

    试试这个,应该可以的

    $query = $this->db->query("SELECT * FROM CIUploads INNER 
    JOIN CIUsers ON CIUploads.UserID = CIUsers.UserID ORDER BY UploadLikes asc");
    

    $this-&gt;db-&gt;query() 将直接执行查询。它不会检查下一行。

    【讨论】:

      【解决方案3】:

      试试这个

      function DisplayLatest() 
        {
          $query = $this->db->select("*")->from("CIUploads")->join("CIUsers","CIUploads.UserID = CIUsers.UserID","inner")->order_by("CIUploads.UploadLikes","asc")->get();
          return $query->result();
        }
      

      【讨论】:

      • 为了提高你的回答质量,请解释一下。
      猜你喜欢
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 2020-07-05
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      相关资源
      最近更新 更多