sql >> Database >  >> RDS >> Mysql

PHP/MySQL-groepsresultaten per kolom

Zoals mluebke commentaar, het gebruik van GROUP betekent dat je er maar één . krijgt resultaat per categorie. Op basis van de lijst die je als voorbeeld gaf, denk ik dat je zoiets als dit wilt:

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

En loop dan door de array. Voorbeeld:

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

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

}


  1. Een telefoonnummer opmaken in SQL Server (T-SQL)

  2. Grote MySQL InnoDB-tabellen wijzigen

  3. SQL Server (localdb)\v11.0 uitgelegd

  4. sorteer de rollup in groep op