好的,所以现在我在另一个查询的 while 循环内有一个查询……但是必须有一种更有效的方法来做我想做的事情。我可以通过一个查询完成以下脚本吗?那会更有效率吗?(我假设它会是)这是我现在拥有的(不是真正的代码,而是一个很好的例子):
$sth = $dbh->prepare("SELECT * FROM Bugs LIMIT 5");
$sth->setFetchMode(PDO::FETCH_OBJ);
$sth->execute();
while($row = $sth->fetch()){
$bugId = $row->id;
echo 'Bug Name: ' . $row->name;
echo '<br />';
echo 'Affected Web Browsers: ';
$sth2 = $dbh->prepare("SELECT * FROM AffectedBrowsers WHERE BugId = '$bugId'");
$sth2->setFetchMode(PDO::FETCH_OBJ);
$sth2->execute();
$i = 1;
while($row2 = $sth2->fetch()){
if($i = 1){
echo $row2->browser;
}else{
echo ', ' . $row2->browser;
}
$i++;
}
}
我的表格如下: 1) “Bugs” - 该表格列出的每个错误都有一行。2) “AFfectedBrowsers” - 此表包含特定错误的所有受影响浏览器。此表通过“AffectedBrowsers”表中的 bugId 列与“Bugs”表建立关系。
注意:我确实意识到增加 $i 可以在 for 循环而不是 if/else 中完成。
更新:每个错误我只需要一行,我猜想在结果集中添加一列,其中列出了该错误的所有受影响浏览器。