Anda dapat mempertahankan beberapa status saat mengulangi yang melacak apakah baris saat ini adalah nama baru/hutang:
$last_name_seen = NULL;
while ($row = mysql_fetch_array($result)) {
$firstname = "";
$payable = "";
if ($last_name_seen === NULL || $row['firstname'] != $last_name_seen) {
$last_name_seen = $row['firstname'];
$firstname = $row['firstname'];
$payable = $row['payable'];
}
echo '<tr>';
echo '<td style="border: 1px solid black;">'.$firstname.'</td>';
echo '<td>'.$payable.'</td>';
echo '<td>'.$row['product'].'</td>';
echo '<td>'.$row['qty'].'</td>';
echo '</tr>';
}
Perhatikan bahwa kueri MySQL Anda harus memiliki beberapa ORDER BY
klausa, untuk menghasilkan urutan yang Anda inginkan, mis.
ORDER BY Name, Product;
Seperti yang juga disarankan oleh komentar di atas, jika Anda menggunakan API PHP yang tidak digunakan lagi, Anda harus mempertimbangkan untuk memutakhirkan ke sesuatu yang lebih modern. Namun, logika yang digunakan pada loop di atas tidak akan banyak berubah dengan mengubah API MySQL.