php - 在php中对mysql结果进行排序

标签 php mysql mysqli

当我使用以下代码时:

$result = queryMysql("SELECT * FROM games ORDER BY game ASC");
$num    = $result->num_rows;

for ($j = 0 ; $j < $num ; ++$j)
{

        $row = $result->fetch_array(MYSQLI_ASSOC);
        echo "<input type='checkbox' name='game' value='$row['id']'>$row['game']<br>";
}

结果未按字母顺序显示。先有命运,后有战地。命运的 ID 为 1,战场的 ID 为 11。

为什么不排序?如果我在 PhpMyAdmin 中使用该命令,我会重新排序列表。

(对不起,如果这太简单了,但我在这里没有找到任何解决方案。所有都提到使用 ORDER BY,但这不起作用)。

From MyPhpAdmin

From Webpage

新代码更改为:
$result = queryMysql("SELECT * FROM games ORDER BY game ASC");

while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
    echo "<input type='checkbox' name='game' value='$row['id']'>$row['game']<br>";
}

还是行不通。这可能是服务器错误吗?

不知道这里发生了什么,但是经过 8 小时的 sleep 后,我重新加载了页面,它按应有的方式排序(仍然使用 Maximus2012 的示例)。
我想这一定是服务器故障,因为我在 sleep 时没有更改代码。

我将信任 Maximus2012 的快速响应!
(当然也要感谢所有其他人!)

最佳答案

替换这个:

$num    = $result->num_rows;
for ($j = 0 ; $j < $num ; ++$j)
{
    $row = $result->fetch_array(MYSQLI_ASSOC);
    echo "<input type='checkbox' name='game' value='$row['id']'>$row['game']<br>";
}

有了这个:(摆脱 $num 和 for 循环)
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
     echo "<input type='checkbox' name='game' value='$row['id']'>$row['game']<br>";
}

看看这是否有效。您不需要 for 循环,因为无论如何您都没有在任何地方使用 $j 变量。此答案基于您的 MySQL 查询为您提供正确结果的假设。

关于php - 在php中对mysql结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29570181/

相关文章:

java - 检索太多行后,Asynctask 不起作用

php - mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - mysqli:PHP fatal error :调用成员函数 fetch_array()

mysql - 用相同变量但来自不同行的值替换变量的值

php - 我的联系表发送空白 body_messages

php - 当两个表都可以搜索时,从相关 MySQL 表中检索相关信息的有效查询是什么

php - 将循环输出保存到数据库

mysql - 按组计算 SQL 中的百分比

mysql - 如果在唯一键中,使用 MYSQL 是否需要在各个字段上使用键?

php - Opencart 未定义常量 DIR_LOG 错误