mysql联合和命令无法正常工作

时间:2013-06-26 17:33:58

标签: php mysql union fetch

我正在尝试将所有结果组合在一起进行循环

$result = ....;
$finalresult = 0;

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

但是,这不起作用。还有另一种方法吗?

1 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

$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,这将失败,因此您需要添加一些错误检查。

其次,在PHP 5.5中不推荐使用mysql_ *,所以你应该考虑使用mysqli_ *或PDO - 它们更加安全。