【问题标题】:PHP - How to sort Array from MySQL databasePHP - 如何从 MySQL 数据库中对数组进行排序
【发布时间】:2013-05-18 05:28:39
【问题描述】:

我正在使用 mysqli 从 MySQL 数据库中检索数据。我正在从数据库中检索行,数据库有一个名称和该名称的编号,我需要首先打印具有最高编号的名称,然后打印具有第二高编号的名称,依此类推。 ..

这是我的代码

while($row = $result->fetch_array(MYSQLI_ASSOC)) {            
    printf ("%s (%s)\n", $row["name"], $row["goals"]);
}

这是当前的输出

我需要它,以便首先打印 KaminJack,然后打印 BregmanMichael,依此类推

【问题讨论】:

  • 您的查询中的用户 ORDER BY 子句

标签: php mysql database arrays mysqli


【解决方案1】:

您的查询应该是:

SELECT * FROM mytable ORDER BY goals desc

找到您的数据,然后按字段goals 排序desc(或asc,如果您愿意)。

【讨论】:

  • @user2109242 desc 按降序排序(从高到低).. ASC 按升序排序(从低到高)
  • @joschua011 我赞成您的评论以提供参考,但您使用 w3schools,所以我不会。
【解决方案2】:

为了进一步改进答案,您应该按两列排序,因为您有一些具有相同数字的名称:HidiJack (0) 和 JainAJesh(0)。

SELECT * FROM mytable ORDER BY goals desc, name asc;

这将首先按数字排序,然后按名称的字母顺序。

如果可以的话,最好将数字设为索引,以免重复。

【讨论】:

  • 对我的回答有了很大的改进! +1
【解决方案3】:

首先,您可以在 MySQL 中使用简单的 ORDRE BY 进行排序。

但是如果你想在php中做:

while($row = $result->fetch_array(MYSQLI_ASSOC)) {
   $result[$row["name"]] = $row["goals"];
}
arsort($result);

http://www.php.net/manual/en/function.arsort.php

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多