使用while循环我能够按照我想要的顺序返回我的表,但是在实现分页之后,我创建的变量(计数器)会在每个页面上重置自己,令人沮丧。示例代码:
$sql = ('SELECT id,name,logo FROM mytable ORDER BY name DESC LIMIT 25');
$query = mysqli_query($db_conx,$sql);
$counter = 0;
while ($row = $query->fetch_assoc()) {
$counter++;
echo "$counter, $row['id'], $row['name']";
echo "<br />";
}
我尝试了很多东西,却无法解决这个问题。显然我的逻辑是有缺陷的。循环返回正确的结果,但$ counter变量在每个页面上中断,无限期地重置。
我想要做的是让$ counter为分页循环创建的每个页面增加25(代表每页的结果)。示例代码:
for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='page.php?page=".$i."'> [".$i."]</a> ";
$GLOBALS["counter"]+=25;
};
显然这不起作用,所以我很难接受下一步的尝试。如果有人有任何想法,我很乐意听到他们,我听到了关于SO社区的好消息。
答案 0 :(得分:1)
您似乎随时只显示前25个结果。
如果第一页是第一页,你需要将$ counter初始化为零,如果它是第二页,则需要将其初始化为26,依此类推:
$counter = 0;
if(isset($_GET['counter'])){
$counter = intval($_GET['counter']);
}
您需要修改查询以获取每个页面的不同结果集:
$sql = 'SELECT id,name,logo FROM mytable ORDER BY name DESC LIMIT ' . mysqli_real_escape_string($db_conx, $counter . ',25');
$query = mysqli_query($db_conx,$sql);
然后我假设你显示了一个指向其他分页页面的链接,你需要传递$ counter的值:
<a href="results.php?counter=<?php echo $counter;?>">Next</a>