【发布时间】:2016-07-17 17:49:30
【问题描述】:
codeigniter pagination - results remain same on every page 的发帖人所面临的问题正是我目前发现的问题。使用下面的代码,我将返回所有 db 表项的列表,但仅在每个后续页面上获得第一个分页页面的 10 个结果;
Articlelist.php(控制器)
//Get Article listing from DB table
function index($page='')
{
$config = array();
$config['base_url'] = base_url() . 'articlelist/index/';
$config['total_rows'] = $this->article_model->record_count();
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$page = $this->uri->segment(3);
$data['results'] = $this->article_model->getList($page * $config['per_page']);
$data['links'] = $this->pagination->create_links();
$this->load->view('articles_list', $data);
}
Article_model.php
//COUNT ALL ARTICLES IN DB TABLE
function record_count()
{
return $this->db->count_all('articles');
}
//GET ALL ARTICLES BY ID
function getList($limit)
{
$limit = 10;
$this->db->limit($limit);
$query = $this->db->get('articles');
if($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data[] = $row;
}
return $data;
}
return false;
}
....等等...
这很烦人,因为分页功能可以顺利交付,然而,articles DB 的返回结果永远不会偏离这十个返回的结果。有什么我想念的吗? 当然 3.0.6 文档中的持续咨询并没有动摇我对当前问题的任何见解。难倒...甚至尝试从我的function getList 末尾删除return false;,但无济于事。尝试保持耐心并检查替代代码格式,但这是之前编写的最稳定的。
对于那些可能会根据加载的视图“foreach”看到某些内容的人;
articles_list.php
<?php
echo '<div class="content_bottom">';
echo '<div class="grid_1_of_2 box">';
echo '<br>';
echo '<div class="span_1_of_3_text2">';
if (!empty($results) && isset($results) && count($results) > 0){
foreach ($results as $data){
echo '<h3>Title: <a title="Click Here For Content" href="'?><?php echo base_url().'articlelist/view/'.$data->article_id.'">'. $data->title. '</a><br>Author: '.$data->name.'<br>Category: '.$data->category.'<br>Clicks: '.$data->clicks.'</h3><hr>';
}
}
else
{
echo '<p><font face="arial black" size="5" color="#0000CC">No Articles.</font></p>';
}
echo '<div id="pagination"><ul class="tsc_pagination tsc_paginationA tsc_paginationA01">'.$links.'</ul></div>';
echo '</div></div></div>';
?>
希望 那 应该足以继续。
*更新**
我要感谢 @pradeep 的努力,这帮助我指出这是一个基于路由的问题的可能性。文章列表页面的路由设置为$route['articlelist'] = 'articlelist/index';。我的痛苦指数因以下事实而增加:我真的没有松懈地查阅文档,并且一直在无情地搜索其他文档说明。更复杂的是,文章 URL 重定向以查看嵌入在链接中的引用内容完美无缺。由于我能够添加/编辑/删除内容,因此这是目前为止唯一留在我的 Craw 中的元素。
“哦……我的头疼”更新
使用@Sonu Bamniya 提供的解决方案;
function index()
{
$config = array();
$config['base_url'] = base_url('articlelist/index/');
$config['total_rows'] = $this->db->get('articles')->num_rows();
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data['results'] = $this->article_model->getList($page , $config['per_page']);
$data['links'] = $this->pagination->create_links();
$this->load->view('articles_list', $data);
}
第一页结果
第二页结果
这些结果与我之前在帖子中的编码完全相同。我什至重新梳理文档,寻找解决这个膨胀问题的方法。What am I missing?!?!? (pounds skull)
投降
由于我不得不放弃实用性,我暂时将articles表中的内容全部计算出来,并将其无限制地列出到页面中(因为我没有数千篇文章眼下)。我通过在页面底部放置Back To Top 链接来减少自己的懈怠。我敢肯定,在我收到一百多篇文章之前,我会想出一个分页解决方案。我厌倦了与这个搏斗,我只想跳过它一段时间。 ;{
【问题讨论】:
-
因为你在你的模型中设置
$limit = 10;,所以limit always updated to 0 to 10
标签: php mysql codeigniter pagination