gpt4 book ai didi

php - 如何使用 order by 为表建立索引?

转载 作者:行者123 更新时间:2023-11-29 11:21:22 24 4
gpt4 key购买 nike

使用 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."'>&nbsp[".$i."]</a> ";
$GLOBALS["counter"]+=25;
};

显然这不起作用,所以我对下一步应该尝试什么感到困惑。如果有人有任何想法,我很乐意听到他们,我听说过有关 SO 社区的伟大事情。

最佳答案

您似乎在任何时候都只显示前 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>

关于php - 如何使用 order by 为表建立索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38844337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com