PDO je o něco víc, než si všichni myslí. Například má pro vás skvělou funkci nazvanou PDO::FETCH_GROUP .
Nemluvě o dalších malých vylepšeních, která mohou váš kód výrazně zkrátit.
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
Je veškerý kód, který potřebujete.
zde vybíráte confirmed
nejprve pole a poté řekněte PDO, aby seskupil (nebo "vynásobil") výsledky na základě jeho hodnoty.
A nyní si můžete své komentáře vytisknout, kam chcete
// Awaiting Comments
foreach($r[0] as $r_) {
echo "<li>$r_[title]</li>";
}
// Confirmed comments
foreach($r[2] as $r_) {
echo "<li>$r_[title]</li>";
}
Nebo to udělat v jedné smyčce
$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>";
}
}