Php Codeigniter分页未显示查询结果的第一行
正如您在下面看到的,我正在查询数据库以获取问题列表 我的模型返回一个问题计数(Php Codeigniter分页未显示查询结果的第一行,php,codeigniter,pagination,limit,offset,Php,Codeigniter,Pagination,Limit,Offset,正如您在下面看到的,我正在查询数据库以获取问题列表 我的模型返回一个问题计数(count_questions())以及问题本身(get_questions($args)),然后对这些问题进行分页 $limit = '10'; $count = $this->forum_model->count_questions(); $offset = $this->uri->segment(3, 0); $this->load->
count_questions()
)以及问题本身(get_questions($args)
),然后对这些问题进行分页
$limit = '10';
$count = $this->forum_model->count_questions();
$offset = $this->uri->segment(3, 0);
$this->load->library('pagination');
$config['base_url'] = base_url() . 'forum/all/';
$config['total_rows'] = $count;
$config['per_page'] = $limit;
$config['full_tag_open'] = '<div class="pagination">';
$config['full_tag_close'] = '</div>';
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$data['q'] = $this->forum_model->get_questions(NULL, $limit, $offset);
$data['pag_links'] = $this->pagination->create_links();
模型(计算问题)
默认情况下,如果该段不存在,该函数将返回FALSE(布尔值)。所以我认为这是不对的
($offset === NULL) ? ($offset = 0) : ($offset = $offset);
return$query->num\u行代码>应该是return$query->num_rows()代码>
另外,尝试将LIMIT$LIMIT OFFSET$OFFSET
更改为LIMIT$OFFSET$LIMIT
问题是,当默认页面从第1行开始执行它时,它会从零开始记录,这就是第一行丢失的原因。我应用了以下代码来解决这个问题
$page=($this->uri->segment(3))$此->uri->段(3):0
请根据您的请求URL编辑片段您能显示您在模型中使用的代码吗?更新帖子-让我知道您的想法-谢谢论坛模型->计算问题()
?oops-刚刚添加了一个好消息,如果在get_questions()
方法中删除查询的最后两行,返回多少行?$this->uri->segment
的第二个参数是如果uri段不存在,将返回什么<代码>$this->uri->segment(3,0)如果没有第三个uri段,code>将返回0
(非FALSE)。您正在使用$config['uri_segment']=3
(分页函数自动确定URI的哪个段包含页码。如果需要其他内容,可以指定它。)和$offset=$this->URI->segment(3,0)代码>。。。所以我认为您在第1页,偏移量也将设置为1(因此第一行将被跳过)"托尔,你发现问题了吗?嘿@rocket,谢谢你的建议-做出了改变,但仍然没有成功-那一排仍然没有出现在前面end@Torr:尝试将LIMIT$LIMIT OFFSET$OFFSET
更改为LIMIT$OFFSET$LIMIT
。不幸的是,不行,仍然会忽略该该死的行-顺便说一句,这是我表格中的第一行被忽略ted-所有其他的显示都很好-正如我在上面的OP中所说的,如果我不使用分页,第一行显示up@Torr:如果您转到分页的第2页,是否看到缺少的行?可能您是ORDER
ing错了?无论页面如何,都找不到缺少的行
function count_questions()
{
$query = $this->db->query("
SELECT *
FROM forum_qa
WHERE forum_qa_type = 1;
");
return $query->num_rows;
}
$this->uri->segment(3, 0);
($offset === NULL) ? ($offset = 0) : ($offset = $offset);