下午好,我有一种情况,我需要在每次父循环迭代后继续将MySQL结果附加到现有结果上。我正在使用的示例如下:

while ($record = mysql_fetch_row($result,MYSQL_ASSOC)) {
   $result2 = mysql_query("SELECT * FROM Products WHERE id='".$record['target']."'");
}


我希望为“ while”循环的每次迭代添加到$ result2上,以便我可以在$ result2中有一个完整的列表,以便以后处理。如何完成这项任务?

谢谢,
戴夫

最佳答案

您为什么不使用IN方法,而不是运行未知数量的查询,这实际上会使您的应用程序变慢?然后在1个查询中获得所有结果。喜欢:

$ids = "";
while ($record = mysql_fetch_row($result,MYSQL_ASSOC)) {
    if( $record['target'] )
    {
        $ids .= "," . $record['target']
    }
    else
    {
        $ids = $record['target'];
    }
}
$result2 = mysql_query("SELECT * FROM Products WHERE id IN (".$ids.")");


现在,$result2包含先前$result中的所有产品;

更多信息


MySQL IN

关于mysql - 每次迭代附加到sql结果中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14988537/

10-16 08:25