【问题标题】:Pagination codeigniter not working分页codeigniter不工作
【发布时间】:2013-08-14 05:29:08
【问题描述】:

分页正在工作,但我不知道为什么它每页只显示一个数据??我的数据库中有 20 个数据,我只能在 6 页中看到 6 个数据:(

这是我的控制器

function view($page=0){
                $config = array();
                $config["base_url"] = base_url() . "index.php/view_expenses/view";
                $config["total_rows"] = $this->emp_expenses_model->getTotalExpensesCount();
                $config["per_page"] =1;
                $this->pagination->initialize($config);
                $this->data["results"] = $this->emp_expenses_model->getExpenses($config["per_page"], $page);
                $this->data["links"] = $this->pagination->create_links();
                $this->data['title'] = 'Payroll System';
                $this->data['message'] = $this->session->flashdata('message');
                $this->load->view('view_expenses', $this->data);

    }

这是我的模特

function getTotalExpensesCount() {
            return $this->db->count_all("emp_expenses");
        }
      function getExpenses($limit, $start) {
            $this->db->limit($limit, $start);
            $qry= $this->db->get("emp_expenses");
        return $qry->result();
         }

任何帮助提前谢谢:D

【问题讨论】:

  • 初始化 $page = 1 而不是 0。
  • 检查了它仍然显示所有页面中的所有数据。我的意思是一页显示一个数据。如果我有 9 个数据显示但它占用 9 个页面。我试图每页显示至少 3 个数据页面

标签: php codeigniter pagination


【解决方案1】:

试试这个:

function view(){
    $config                 = array();
    $config["base_url"]     = base_url() . "index.php/view_expenses/view/".$this->uri->segment(3);
    $config["total_rows"]   = $this->emp_expenses_model->getTotalExpensesCount();
    $config["per_page"]     = 5;
    $config['uri_segment']  = 3;
    $this->pagination->initialize($config);

    $this->data["results"]  = $this->emp_expenses_model->getExpenses($config["per_page"], $this->uri->segment(3));
    $this->data["links"]    = $this->pagination->create_links();
    $this->data['title']    = 'Payroll System';
    $this->data['message']  = $this->session->flashdata('message');
    $this->load->view('view_expenses', $this->data);

}

function getExpenses($limit, $start = 0) {
    $qry= $this->db->get("emp_expenses", $limit, $start);
    return $qry->result();
}

$config["per_page"] = 5; 表示您希望每页显示 5 个数据,$config['uri_segment'] = 3; 表示哪个段将保存您将在查询中使用的偏移量。 $config["total_rows"] 定义总数。表中的行数。 $config["base_url"] 定义分页将保存的 url。
您在视图中显示的数据与分页无关。检查您的查询和您获得的偏移量。例如。将echo $this->db->last_qeury();die; 放在function getExpenses() 中,就在return 语句之前。

【讨论】:

  • 感谢 niloy 解释这些事情......但这意味着 $start=o 是什么意思?
  • 第一次没有偏移量不是uri->segment(3)时默认为0。有效吗?
  • 伙计,它现在可以工作了 :) 我只改变了一些视图,并且每 pag=10 都改变了
  • 如果对您有帮助,请接受答案。 :D
  • 您的回答对您有所帮助,但您的解释确实有效:D
【解决方案2】:

你需要通过uri segmentlike

$config["uri_segment"] = $last_seg_no;

这里$last_seg_no会是最后一个可以找到页码的段。并且需要通过per page param也喜欢

$config["per_page"] = 1;//As per your case

【讨论】:

    【解决方案3】:

    “不知道为什么它每页只显示一个数据??”因为$config["per_page"] =1;

    添加以下内容,

    $config['uri_segment'] = 3; // change based on ur url

    将值从 $config["per_page"] =1; 更改为 $config["per_page"] =3; 以每页显示 3 个数据。

    【讨论】:

      【解决方案4】:

      试试这个

      $config['uri_segment'] = 3;
      
      $config["per_page"] = 3;
      

      像这样修改模态函数

      function getTotalExpensesCount() {
         $this->db->select("count(*) as CNT"); 
         $qry = $this->db->get("emp_expenses");
         $result2 = $qry->row()->CNT;
         return $result2;
      }
      

      【讨论】:

      • 没有它唯一变化的链接数量...请参阅我在模型页面中使用限制的限制数据。在视图页面中我尝试了这个 var_dump($results);die('asd');并显示一个数据如何增加
      • $config["total_rows"] 得到了什么?
      • 我得到了空值。但是他们我想计算我的表中有多少行。这两行是我限制值的地方,但是如果我更改 per_page 值,它只会更改链接,但不会在一页中显示更多数据 $config["per_page"] =2; $this->data["results"] = $this->emp_expenses_model->getExpenses($config["per_page"], $page);
      • 并且每当我添加新数据时,它只会增加另一个链接:(
      【解决方案5】:

      我也遇到过同样的问题。现在它通过改变这个解决了

      $config['uri_segment']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-27
        • 1970-01-01
        • 2014-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多