Codeigniter - 使用分页,仅显示数据库中的用户数据
Codeigniter - Using pagination, display only user's data from database
我想做的是获取用户的数据库,其中包含他们创建并保存到数据库中的所有笔记。
我正在创建一个分页系统,它将仅显示他们创建的用户数据并在 table 中显示它们。
问题: 当我尝试显示结果(只有用户的数据,而不是其他人的数据)时,它显示得非常好。但是,底部的分页乱七八糟。
很难解释。例如。我已将其设置为每页仅显示 5 个结果。然而,用户只有 10 行(注释)。所以它应该都放在第一页。数据库也保存了其他用户的数据,所以有超过 50 个。所以它不是显示 First < 1 2 > Last
之类的分页,而是显示 First < 1 2 3 4 5...> Last
(不需要额外的数字,因为它已经显示了所有前两页的用户数据(注释)。)
当我点击 5
或以上的更多数字时,它显示为空,仅显示 table 的数据库标题,因为我将其设置为仅显示用户数据,而不是其他人。
希望你明白我的意思。
我的控制器:
$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>
我已经修好了。很简单。
简单地这样查询:$config['total_rows'] = $this->db->get_where('dayone_entries', array('uid' => $uid))->num_rows();
我想做的是获取用户的数据库,其中包含他们创建并保存到数据库中的所有笔记。
我正在创建一个分页系统,它将仅显示他们创建的用户数据并在 table 中显示它们。
问题: 当我尝试显示结果(只有用户的数据,而不是其他人的数据)时,它显示得非常好。但是,底部的分页乱七八糟。
很难解释。例如。我已将其设置为每页仅显示 5 个结果。然而,用户只有 10 行(注释)。所以它应该都放在第一页。数据库也保存了其他用户的数据,所以有超过 50 个。所以它不是显示 First < 1 2 > Last
之类的分页,而是显示 First < 1 2 3 4 5...> Last
(不需要额外的数字,因为它已经显示了所有前两页的用户数据(注释)。)
当我点击 5
或以上的更多数字时,它显示为空,仅显示 table 的数据库标题,因为我将其设置为仅显示用户数据,而不是其他人。
希望你明白我的意思。
我的控制器:
$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>
我已经修好了。很简单。
简单地这样查询:$config['total_rows'] = $this->db->get_where('dayone_entries', array('uid' => $uid))->num_rows();