【发布时间】:2011-09-13 16:04:09
【问题描述】:
请考虑以下几点:
$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 中的查询会返回几行。
【问题讨论】:
-
The FOREACH() loop works on the one row that's returned.- 实际上不,它没有。你永远不会使用$row。这可能是错误吗? -
你的顺序有点奇怪。您在查询之前从 $result 获取。通常,您首先进行查询,然后循环从结果中获取。
-
抱歉,从我的问题中删除了似乎不相关的一行。
$row用于以下行:$legID = explode(",", $row['legIDs']);紧接在FOREACH()之前。
标签: php mysql while-loop fetch