Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Resultados do grupo PHP/MySQL por coluna


Como mluebke comentado, usar GROUP significa que você só recebe um resultado de cada categoria. Com base na lista que você deu como exemplo, acho que você quer algo assim:
$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
}

E, em seguida, percorra a matriz. Exemplo:
foreach ($list as $category => $products) {
  echo '<h1>' . $category . '</h1>';

  foreach ($products as $productId => $productInfo) {
    echo 'Product ' . $productId . ': ' . $productInfo['name'];
    // etc
  }

}