我在其中使用codeigniter
和类(library) pagination
,为什么每次点击pagination
列#
后be counted rows from the beginning
。
我希望喜欢这个(p =分页):
P1-> # - > 1 2 3
P2-> # - > 4 5 6
p3 - > # - > 7 8 9
p4# - > 10
示例: see example of my problem 要查看完整代码,请转到此处:FULL CODE
$data['results'] = $this->db->query("SELECT @rownum:=@rownum+1 rownum, t.*
FROM (
SELECT *
FROM hotel_submits
ORDER BY id desc
LIMIT $offset, 3
) t,
(SELECT @rownum:=0) r");
顶部代码中的 Rownum
与此问题相关联。
你知道如何解决这个问题吗?
答案 0 :(得分:1)
您可以检索当前所在页面的$offset
吗?
就像我在第1页,$offset
= 1,
如果我在第2页,$offset
= 4(1 +(第2 - 1)页* 3)
如果我在第3页,$offset
= 7(1 +(第3 - 1)页* 3)
等。
如果您目前无法轻易获得该信息,则可以从控制器中传递它,以便您的视图了解当前的$offset
。
然后在代码中,而不是使用$row->rownum
,添加当前$offset
的值减去1,因为rownum从1开始。
foreach ($results->result() as $row)
{
echo '<tr><td><input type="checkbox" name="remember_me" value="true" ></td>';
// echo '<td>'.$row->rownum.'</td>';
echo '<td>'.intval($row->rownum + $offset - 1).'</td>';
echo '<td>'.$row->type.'</td>';
echo '<td>'.$row->name.'</td>';
echo '<td>'.$row->star.' - '.$row->type_star.'</td>';
echo '<td><span id="'.$row->address.'" class="tooltip">'.$row->address.'</span></td>';
echo '<td><span id="'.$row->number_phone.'" class="tooltip">'.$row->number_phone.'</span></td>';
echo '<td>'.$row->fax.'</td>';
echo '<td>'.$row->site.'</td>';
echo '<td>'.$row->email.'</td>';
echo '<td>'.$row->date.'</td></tr>';
}
所以在第2页,而不是1,2,3等,它应该是(1 + 4-1)4,(2 + 4-1)5,(3 + 4-1)6。
我希望这是有道理的。
答案 1 :(得分:1)
只需使用uri->segment(4)
即可。它应该解决你的问题。分页自动更改URI并将最后一个计数与URI一起追加。所以当你通过$this->uri->segment(4)
时。然后,这将返回最后返回的值,因此当您移动到下一页时,您可以从5开始。
这就是分页的工作原理。所以使用这个:
admin/accommodation/show/(segment 4)