【发布时间】:2017-10-10 19:57:45
【问题描述】:
所以基本上我用 url 创建了一个网页:
http://localhost/bbe/alumni/showthread.php?t=19
$limit = 8;
$offset = (isset($_GET["page"]) ? $_GET["page"] - 1 : 0) * $limit;
然后放一个评论部分(带分页),但我的分页代码不起作用
<?php
$total = $dbcon->query("SELECT count(*) FROM comment") or die(mysqli_error());
$fetch = $total->fetch_assoc();
for($x = 0; $x < $fetch["count(*)"] / $limit ; $x ++)
{
$page = $x + 1;
if((isset($_GET["page"]) ? $_GET["page"] : 1) == $page) $page = "<b>".$page."</b>";
echo '<a href="showthread.php?t='.$id.'?page='.($x + 1).'" class="label label-danger">'.$page.'</a> ';
}
?>
8 cmets 后有页码,但是当我点击第 2 页的链接时,除了 url 更改为:
http://localhost/bbe/alumni/showthread.php?t=19?page=2
如果我点击返回第 1 页,则 url 更改为
http://localhost/bbe/alumni/showthread.php?t=19?page=2?page=1
等等..为什么我的分页中的链接不起作用?对不起,我是 php 新手,还在网上学习
【问题讨论】:
-
额外的请求变量需要用
&分隔,而不是?,所以url应该变成http://localhost/bbe/alumni/showthread.php?t=19&page=2。另外,考虑限制你的查询结果而不是在 PHP 中分页,随着数据量的增加,这将变得非常慢 -
@Pevara 分页现在可以工作,因为我用 & 符号分隔请求变量。但是我将如何限制我的查询结果?我仍然对它的真正含义感到困惑。 comment() 中的代码如下:
"SELECT * FROM comment ORDER BY timestamp DESC LIMIT $offset,$limit" -
我的错误,我没有仔细阅读您的代码并假设您在哪里获取实际的 cmets,而您似乎只是在使用总数来构建寻呼机链接。如果这对您有用,则代码很好,无需限制查询结果。
-
@ronstoppable 你的问题是链接对吗?您能帮我解释一下您要解决的问题是什么
-
@MehdiBounya 是的,我的问题是链接。但它现在解决了。感谢佩瓦拉。我不知道不同的请求变量需要用
&分隔,而不是?
标签: php