आप पुनरावृति करते समय कुछ स्थिति बनाए रख सकते हैं जो इस बात पर नज़र रखता है कि क्या वर्तमान पंक्ति एक नया नाम/देय है:
$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>';
}
ध्यान दें कि आपकी MySQL क्वेरी में कुछ ORDER BY
होना चाहिए क्लॉज, जो ऑर्डर आप चाहते हैं उसे जेनरेट करने के लिए, उदा.
ORDER BY Name, Product;
जैसा कि ऊपर दी गई टिप्पणियां भी सुझाव देती हैं, यदि आप एक बहिष्कृत PHP API का उपयोग कर रहे हैं, तो आपको कुछ और आधुनिक में अपग्रेड करने पर विचार करना चाहिए। लेकिन, उपरोक्त लूप में प्रयुक्त तर्क MySQL API को बदलने के साथ ज्यादा नहीं बदलेगा।