PDO to trochę więcej niż wszyscy myślą. Na przykład ma dla Ciebie wspaniałą funkcję o nazwie PDO::FETCH_GROUP .
Nie wspominając o innych drobnych ulepszeniach, które mogą znacznie skrócić Twój kod.
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
To wszystko, czego potrzebujesz.
tutaj wybierasz confirmed
najpierw pole, a następnie powiedz PDO, aby pogrupował (lub „pomnożył”) wyniki na podstawie jego wartości.
A teraz możesz drukować swoje komentarze w dowolnym miejscu
// Awaiting Comments
foreach($r[0] as $r_) {
echo "<li>$r_[title]</li>";
}
// Confirmed comments
foreach($r[2] as $r_) {
echo "<li>$r_[title]</li>";
}
Albo zrobić to w jednej pętli
$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>";
}
}