ORDER BY $variable set AFTER query?


ORDER BY $variable set AFTER query?

我有这样的代码:

<?php 
$data = mysql_query("SELECT id FROM board") or die(mysql_error()); 
while($info = mysql_fetch_assoc( $data )) 
{ 
    Print " ".$info['id']." ";
    myOtherQuery($info['id']);
}
function myOtherQuery($id) {
    $result = mysql_query("SELECT COUNT(is_following_board_id) FROM follow WHERE is_following_board_id='$id'");
    $c = mysql_result($result, 0);
}
?>

它列出了所有带有数字的ID,在上面的第二个查询中定义为$c

为了简单起见,我删除了代码中的HTML,但它在一个表中对齐。

我想ORDER BY $c,但不知道怎么做。因为它定义在select查询之后:$data = mysql_query("SELECT id FROM board")

如果我添加:$data = mysql_query("SELECT id FROM board ORDER BY '$c'")

它会出错

有什么我可以添加到代码的底部,使这个订单的工作?

您希望通过聚合结果在一个查询中完成此操作:

select is_following_board_id, sum(is_following_board_id) as cnt
from follow
group by is_following_board_id
order by cnt desc;

您的方法是先获取结果,然后再获取计数。相当低效,因为SQL就是为这种类型的查询而设计的。