0

我目前有以下代码输出数据库中名称的唯一出现次数以及名称(对于最常见的 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>';
4

1 回答 1

0

可能你没有提到的唯一方法是有两个查询调用,只是使用不同的 ORDER BY,但是你可以使用所有相同的代码(可能在一个函数中)来绘制桌子。就像把整个代码块放在一个接受变量的函数中...... $orderBy。那么您所做的唯一更改就是 $query2 定义,只需以 "ORDER BY $orderBy" 结尾即可;有道理?

于 2013-10-13T10:27:28.790 回答