sql >> Database teknologi >  >> RDS >> Mysql

PHP/MySQL grupperer resultater efter kolonne

Ligesom mluebke kommenteret, at bruge GROUP betyder, at du kun får én resultat for hver kategori. Ud fra den liste, du gav som eksempel, tror jeg, at du vil have sådan noget her:

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

Og løkke derefter gennem arrayet. Eksempel:

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

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

}


  1. Måder at gendanne data fra SQL Server Transaction Log File

  2. "Er det hemmeligt? Er det sikkert?" Håndtering af følsomme data i din datamodellering

  3. Dato- og tidsenheder i MySQL (fuld liste)

  4. Nye Microsoft Access-funktioner på vej!