How can I list data in sections by an ID, with a while loop in PHP? [closed]

Order your results by series_id, so all the products with the same value will be together.

$stmt = $pdo->prepare("SELECT series_id, product_name
                       FROM yourTable
                       ORDER BY series_id");
$stmt->execute();

Then when displaying the results, show the Series header and start a new <ul> whenever it changes:

$last_series = null;
echo "<ul>\n";
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if ($row['series_id'] != $last_series) {
        if ($last_series) {
            echo "</ul></li>\n";
        }
        echo "<li>" . $row['series_id'] . " Series Product\n";
        echo "<ul>\n";
        $last_series = $row['series_id'];
    }
    echo "<li>" . $row['product_name'] . "</li>\n";
}
if ($last_series) {
    echo "</li>\n";
}
echo "</ul>\n";

Leave a Comment