PDOは、誰もが思っているよりも少し多いです。たとえば、 PDO ::FETCH_GROUP と呼ばれるすばらしい機能があります。 。
コードを劇的に短くすることができる他の小さな改善は言うまでもありません。
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
必要なコードはすべて揃っています。
ここでは、confirmed
を選択しています 最初にフィールドを作成してから、値に基づいて結果をグループ化(または「乗算」)するようにPDOに指示します。
そして今、あなたはあなたが望むところならどこでもあなたのコメントを印刷することができます
// Awaiting Comments
foreach($r[0] as $r_) {
echo "<li>$r_[title]</li>";
}
// Confirmed comments
foreach($r[2] as $r_) {
echo "<li>$r_[title]</li>";
}
または、1つのループにまとめる
$titles = [
0 => 'Awaiting Comments',
2 => 'Comments waiting confirmation',
1 => 'Confirmed Comments',
];
foreach ($titles as $code => $title)
{
echo "<h3>$title</h3>";
foreach($r[$code] as $r_) {
echo "<li>$r_[title]</li>";
}
}