【问题标题】:Codeigniter - Using pagination, display only user's data from databaseCodeigniter - 使用分页,仅显示数据库中的用户数据
【发布时间】:2015-05-01 14:37:21
【问题描述】:

我要做的是获取用户创建并保存到数据库中的所有笔记的数据库。

我正在创建一个分页系统,它将仅显示他们创建的用户数据并在表格中显示它们。

问题:当我尝试显示结果(只有用户的数据,而不是其他人的数据)时,它显示得非常好。但是,底部的分页搞砸了。

很难解释。例如。我已将其设置为每页仅显示 5 个结果。然而,用户只有 10 行(注释)。所以它应该都适合第一页。数据库也保存其他用户的数据,所以有超过 50 个。所以不是显示类似 First < 1 2 > Last 的分页,而是显示 First < 1 2 3 4 5...> Last (不需要额外的数字,因为它已经显示了所有用户的数据(注释)在前两页。)

当我点击5或以上的其他数字时,它显示为空,只显示表的数据库标题,因为我已将其设置为只显示用户的数据,而不是其他任何人。

希望你明白我的意思。

我的控制器:

$uid = $this->session->userdata('uid'); //added on sat , feb 28

    $this->load->library('pagination');
    $this->load->library('table');

    $config['base_url'] = 'http://localhost/dayone/profile/notes';
    $config['total_rows'] = $this->db->get('notes')->num_rows();
    $this->db->where('uid', $uid);
    $this->db->order_by("time", "desc"); 
    $config['per_page'] = 5;
    $config['num_links'] = 2;
    $this->pagination->initialize($config);

    $data['records'] = $this->db->get('notes', $config['per_page'], $this->uri->segment(3));
    $this->pagination->create_links();
    $this->load->view('profile/includes/header');
    $this->load->view('profile/view_all_entries', $data);

我的视图文件:

<?php include "includes/settings.php" ?>

<html>
    <body>
<div class="container">

        <h3 class="block-title block-title--simple"> Your <?php echo $site_title ?> Entries </h3>

         <?php echo $this->table->generate($records); ?>
        <?php echo $this->pagination->create_links(); ?>

        </div>

    </body>
</html>

【问题讨论】:

    标签: php mysql codeigniter pagination


    【解决方案1】:

    我已经解决了。这很简单。

    这样查询:$config['total_rows'] = $this->db->get_where('dayone_entries', array('uid' => $uid))->num_rows();

    【讨论】:

      猜你喜欢
      • 2013-12-21
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 2016-11-26
      • 2017-09-06
      相关资源
      最近更新 更多