Tôi khuyên bạn chỉ nên dùng một truy vấn đơn giản để tìm nạp tất cả các hàng, được sắp xếp theo id danh mục. Chỉ xuất danh mục nếu giá trị của nó thay đổi so với hàng trước đó.
<?php
$stmt = $pdo-> query("SELECT * FROM `myTable` ORDER BY categoryID");
$current_cat = null;
while ($row = $stmt->fetch()) {
if ($row["categoryID"] != $current_cat) {
$current_cat = $row["categoryID"];
echo "Category #{$current_cat}\n";
}
echo $row["productName"] . "\n";
}
?>