La DOP è un po' più di quanto tutti pensino. Ad esempio, ha una magnifica funzionalità per te, chiamata PDO::FETCH_GROUP .
Per non parlare di altri piccoli miglioramenti che possono ridurre notevolmente il codice.
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
È tutto il codice di cui hai bisogno.
qui stai selezionando il confirmed
prima il campo e poi indica a PDO di raggruppare (o "moltiplicare") i risultati in base al suo valore.
E ora puoi stampare i tuoi commenti dove vuoi
// Awaiting Comments
foreach($r[0] as $r_) {
echo "<li>$r_[title]</li>";
}
// Confirmed comments
foreach($r[2] as $r_) {
echo "<li>$r_[title]</li>";
}
Oppure, per farlo in un unico ciclo
$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>";
}
}