PDO er lidt mere, end alle tror, det er. For eksempel har den en storslået funktion til dig, kaldet PDO::FETCH_GROUP .
For ikke at nævne andre små forbedringer, der kan gøre din kode dramatisk kortere.
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
Er al den kode, du har brug for.
her vælger du den confirmed
felt først, og bed derefter PDO om at gruppere (eller "multiplicere") resultaterne baseret på dens værdi.
Og nu kan du udskrive dine kommentarer, hvor du vil
// Awaiting Comments
foreach($r[0] as $r_) {
echo "<li>$r_[title]</li>";
}
// Confirmed comments
foreach($r[2] as $r_) {
echo "<li>$r_[title]</li>";
}
Eller for at lave det i én løkke
$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>";
}
}