mysql联合和订单不起作用


mysql union and order not working

当我通过循环时,我正在尝试组合所有结果

$result = ....;
$finalresult = 0;
while($row = mysql_fetch_assoc($result))
{
    $clubID = $row['clubID'];
    $finalresult = mysql_query('"'.$finalresult.'" UNION ALL SELECT * FROM events WHERE clubID = "'.$clubID.'"');
}

然而,这不起作用。有别的办法吗?

这应该可以做到:

$clubIDs = array();
while($row = mysql_fetch_assoc($result)) {
    $clubIDs[] = $row['clubID'];
}
$finalresult = mysql_query("SELECT * FROM events WHERE clubID IN (" . implode(',', $clubIDs) . ")");

它从您以前的查询中生成一个clubID列表,并将它们放入一个数组中。然后,它使用该数组生成一个IN子句,并一次性检索所有数据。

有几个注意事项-如果没有有效的俱乐部ID,这将失败,所以你需要添加一些错误检查。

其次,mysql_*在PHP 5.5中已被弃用,因此您应该考虑使用mysqli_*或PDO,因为它们都更安全。