जैसे mluebke
टिप्पणी की, GROUP का उपयोग करने का अर्थ है कि आपको केवल एक मिलता है प्रत्येक श्रेणी के लिए परिणाम। उदाहरण के तौर पर आपने जो सूची दी है, उसके आधार पर, मुझे लगता है कि आप कुछ इस तरह चाहते हैं:
$sql = "SELECT * FROM products WHERE category IN (10,120,150,500) GROUP BY category ORDER BY category, id";
$res = mysql_query($sql);
$list = array();
while ($r = mysql_fetch_object($res)) {
$list[$r->category][$r->id]['name'] = $r->name;
$list[$r->category][$r->id]['whatever'] = $r->whatever;
// etc
}
और फिर सरणी के माध्यम से लूप करें। उदाहरण:
foreach ($list as $category => $products) {
echo '<h1>' . $category . '</h1>';
foreach ($products as $productId => $productInfo) {
echo 'Product ' . $productId . ': ' . $productInfo['name'];
// etc
}
}