我很困惑,我会尝试解释而不会让你感到困惑。
我在查询中加入了多个表,这些表在SQL中正常工作并且符合预期。 (在这种情况下,表格中有两行,其中的值为' Elephant& Castle' 和' Lambert North' )。
我需要循环查看$row['underground_name']
数组的结果,但对于我的生活,我无法让它工作或了解我哪里出错了。
我可以遍历所有行,但这会给我两倍的所有内容,包括' Projects'中的所有内容。表 - 看起来非常低效。因为我只需要来自' Projects'的第一行。表。但如果我循环遍历$row['underground_name']
,我就不会从'项目中获得任何价值。 - 此刻它感觉就像是其中一个?
是否可以仅通过$row['underground_name']
数组进行循环?
这是我的代码 - 感谢您的帮助,
$query = "SELECT * FROM projects
LEFT OUTER JOIN projects_underground ON projects.projects_id = projects_underground.projects_FK
LEFT OUTER JOIN underground ON underground.underground_id = projects_underground.underground_FK
LEFT OUTER JOIN natrail ON projects.natrail_id = natrail.natrail_id
LEFT OUTER JOIN dlr ON projects.dlr_id = dlr.dlr_id
LEFT OUTER JOIN overground ON projects.overground_id = overground.overground_id
LEFT OUTER JOIN tram ON projects.tram_id = tram.tram_id LEFT JOIN river ON projects.river_id = river.river_id
WHERE projects.name = 'Imperial War Museum'";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_assoc($result))
{
$r = $row['underground_name'];
}
答案 0 :(得分:0)
$ row ['underground_name']不会是来自数据库的PHP数组,因此您将无法迭代它。如果它存储为json,那么当你解码它时,你将有一个数组可以使用,而foreach {}将完成工作。如果它是一个更小,更明确的数据集,你可以用分隔符存储,然后爆炸该行结果来创建一个真实的数组....但是,否则,你正在处理一个字符串....并且该字符串是平的。 / p>
这是一个快速的PseudoCode,可以让您走上正确的轨道。有时候这样做会有所帮助,...然后你可以沿着print_r / var_dump来更好地可视化你的数据。
while ($row = mysqli_fetch_assoc($result)){
$q = $row['fieldQ'];
$r = json_decode($row['underground_name']);
foreach($r AS $k => $v){
//this is the loop you're looking for
}
$s = $row['fieldS'];
$t = $row['fieldT']; //etc,...etc.
}