PDO nhiều hơn một chút so với những gì mọi người nghĩ. Ví dụ:nó có một tính năng tuyệt vời dành cho bạn, được gọi là PDO ::FETCH_GROUP .
Chưa kể đến những cải tiến nhỏ khác có thể làm cho mã của bạn ngắn hơn đáng kể.
$r = $handler->query("SELECT confirmed, c.* FROM comments c")->fetchAll(PDO::FETCH_GROUP);
Là tất cả mã bạn cần.
ở đây bạn đang chọn confirmed
trường đầu tiên và sau đó yêu cầu PDO nhóm (hoặc "nhân") các kết quả dựa trên giá trị của nó.
Và bây giờ bạn có thể in nhận xét của mình ở bất cứ đâu bạn muốn
// Awaiting Comments
foreach($r[0] as $r_) {
echo "<li>$r_[title]</li>";
}
// Confirmed comments
foreach($r[2] as $r_) {
echo "<li>$r_[title]</li>";
}
Hoặc, để làm cho nó trong một vòng lặp
$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>";
}
}