使用 PHP 对不同字段上的 mysql 输出进行排序


Sorting mysql output on a different field with PHP

我目前有以下代码,用于输出数据库中名称的唯一出现次数以及名称(对于最常见的 100 个名称)。代码工作正常,输出如下所示:

Smith       71
Ryan        49
White       39
Brown       23

我想在该表旁边的表格中重复该列表,输出按名称的字母顺序排序。

Smith       71             Brown     23
Ryan        49             Ryan      49
White       39             Smith     71
Brown       23             White     39

有没有办法作为 mysql 搜索的一部分做到这一点,或者当我执行第一个循环时,我需要将值存储在数组中,然后对数组进行排序和输出?

如果是后者,任何人都可以建议有效的代码来做到这一点。

 $query2 = "SELECT family_name, COUNT(*) as count FROM nametable 
            WHERE locationkey = $location
            GROUP BY family_name ORDER BY count DESC";
 $table2 = mysql_query($query2);
 $count2 = mysql_num_rows($table2);
 $tot = 0;
 echo '<table>';
 while ($tot < $count2 && $tot < 100) {
     $rec2 = mysql_fetch_array($table2);
     echo '<tr><td>',$rec2[0],'</td><td width="40">&nbsp;</td><td>',$rec2[1], '</td></tr>';
     $tot++;
 }
     echo '</table>';

可能您没有提到的唯一方法是进行两次查询调用,只是使用不同的 ORDER BY,但这样您就可以使用所有相同的代码(可能在函数中)来绘制表。 就像把整个代码块放在一个接受变量的函数中......$orderBy。 然后,您所做的唯一更改是$query 2定义,只需以"ORDER BY $orderBy"结尾即可; 有意义?