Заказ не работает

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>";

}

(Я понимаю, что я заказываю при загрузке, так как это целое число и должен работать)

  • 0
    Почему бы вам не поместить выражение order by в переменную $ query?
Теги:
codeigniter

3 ответа

0

Класс/активные записи Codeigniter Query Builder

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()

При кодировании кода при вызове модели на контроллер вы не

Пример имени файла: 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'); 
}

}
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

попробуй это

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
    Чтобы улучшить качество вашего ответа, пожалуйста, объясните его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню