sql >> Base de Datos >  >> RDS >> Mysql

Resultados del grupo PHP/MySQL por columna

Me gusta mluebke comentó, usar GROUP significa que solo obtienes uno resultado de cada categoría. Según la lista que diste como ejemplo, creo que quieres algo como esto:

$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
}

Y luego recorrer la matriz. Ejemplo:

foreach ($list as $category => $products) {
  echo '<h1>' . $category . '</h1>';

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

}