sql >> Databasteknik >  >> RDS >> Mysql

PHP/MySQL gruppera resultat efter kolumn

Som mluebke kommenterade, att använda GROUP betyder att du bara får en resultat för varje kategori. Utifrån listan du gav som exempel tror jag att du vill ha något sånt här:

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

Och sedan loopa genom arrayen. Exempel:

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

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

}


  1. PostgreSQL databastjänst

  2. Mysql:Trimma alla fält i databasen

  3. Hur sammanfogar du två tabeller på ett främmande nyckelfält med django ORM?

  4. Fel syntax nära ')' anropar lagrad procedur med GETDATE