DOP é um pouco mais do que todos pensam que é. Por exemplo, tem um recurso magnífico para você, chamado PDO::FETCH_GROUP .
Sem mencionar outras pequenas melhorias que podem tornar seu código drasticamente mais curto.
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
É todo o código que você precisa.
aqui você está selecionando o
confirmed
campo primeiro e, em seguida, diga ao PDO para agrupar (ou "multiplicar") os resultados com base em seu valor. E agora você pode imprimir seus comentários onde quiser
// Awaiting Comments
foreach($r[0] as $r_) {
echo "<li>$r_[title]</li>";
}
// Confirmed comments
foreach($r[2] as $r_) {
echo "<li>$r_[title]</li>";
}
Ou, para fazê-lo em um loop
$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>";
}
}