2015-10-17 143 views
1

我試圖按日期排序並顯示結果,但更改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>"; 

} 

(我通過上傳意識到IM排序喜歡,因爲這是一個整數,應該工作)

+0

爲什麼不你在$ query變量放在ORDER BY子句? –

回答

0

試試這個

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

爲了提高答案的質量,請解釋它。 –

0

當您使用$this->db->query()時,這不是正確的寫查詢方式。

試試這個,這應該工作

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

$this->db->query()將直接執行查詢。它不會檢查下一行。

0

笨查詢生成器類/活動記錄

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'); 
} 

}