我目前有以下代码,用于输出数据库中名称的唯一出现次数以及名称(对于最常见的 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"> </td><td>',$rec2[1], '</td></tr>';
$tot++;
}
echo '</table>';
可能您没有提到的唯一方法是进行两次查询调用,只是使用不同的 ORDER BY,但这样您就可以使用所有相同的代码(可能在函数中)来绘制表。 就像把整个代码块放在一个接受变量的函数中......$orderBy。 然后,您所做的唯一更改是$query 2定义,只需以"ORDER BY $orderBy"结尾即可; 有意义?