-2

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

这是我的代码

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

这是当前的输出

在此处输入图像描述

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

4

3 回答 3

3

您的查询应该是:

SELECT * FROM mytable ORDER BY goals desc

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

于 2013-05-18T05:31:42.040 回答
1

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

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

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

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

于 2013-05-18T05:46:29.170 回答
0

首先,您可以在 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-05-18T05:34:08.927 回答