gpt4 book ai didi

php - mysql_fetch_assoc() 仅适用于 WHILE 循环中的一次迭代

转载 作者:行者123 更新时间:2023-12-01 00:06:55 24 4
gpt4 key购买 nike

请考虑以下事项:

$query = "SELECT legIDs FROM trip";
$result = mysql_query($query) or die("SELECT TRIPS ERROR: " . mysql_error());
while($row = mysql_fetch_assoc($result) or die("fetch error " . mysql_error())) {
echo "<div style=\"border: 1px solid blue;float:left;\">Trip: <div style=\"float:right;\">";
$legID = explode(",", $row['legIDs']);
foreach($legID as $leg) {
$query = "SELECT dep, arr FROM leg WHERE `Key` = " . $leg;
$result = mysql_query($query) or die("SELECT LEGS ERROR: " . mysql_error());
$row2 = mysql_fetch_assoc($result) or die("FILL ARRAY ERROR: " . mysql_error());
echo $row2['dep'] . " - " . $row2['arr'] . "<br />";
}
echo "</div></div>";
}

出于某种原因,这只会返回一个结果,即使 WHILE() 循环返回了多个值也是如此。 FOREACH() 循环处理返回的一行。我做错了什么只让这个返回一行吗?直接在服务器上执行 $result 中包含的查询会返回几行。

最佳答案

您在内循环和外循环中使用了两次 $result。当内循环完成时,$result 将是一个“空”结果集,因此外循环将终止。将内部循环更改为 $result2,一切都应该没问题。

但是,由于内循环只是根据外循环生成的内容获取更多结果,因此您应该考虑将其重写为联合查询。运行单个“大结果”查询几乎总是比一长串“小结果”单个查询更有效。您最终需要相当大的开销来解析/编译每个内部查询。

关于php - mysql_fetch_assoc() 仅适用于 WHILE 循环中的一次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6326557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com