Como você já está ordenando seu resultado por produto, você pode fazer algo assim:
$currentProduct = null;
foreach($products as $product) {
if ($currentProduct != $product['product']) {
// We got a new product. Show it with some fancy html
// Then store it in $currentProduct for the next iteration
$currentProduct = $product['product'];
}
// Show the title with some fancy html
}
Se você quiser usar seu
do while
existente -loop em vez disso, é o mesmo.