Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP/MySQL групирайте резултати по колона

Като mluebke коментира, използването на GROUP означава, че получавате само един резултат за всяка категория. Въз основа на списъка, който дадохте като пример, мисля, че искате нещо подобно:

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

И след това преминете през масива. Пример:

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

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

}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пропускайте редове за грешки, докато зареждате данни в mysql таблица от файл с разделители

  2. mysql е мъртъв, но подсистемата е заключена

  3. База данни по подразбиране на MySQL

  4. MySQL броят колони за конкретна стойност

  5. Вмъкване на данни с помощта на mysqli