Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hasil grup PHP/MySQL berdasarkan kolom

Seperti mluebke berkomentar, menggunakan GROUP berarti Anda hanya mendapatkan satu hasil untuk setiap kategori. Berdasarkan daftar yang Anda berikan sebagai contoh, saya pikir Anda menginginkan sesuatu seperti ini:

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

Dan kemudian loop melalui array. Contoh:

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. Putuskan koneksi database mysql node JS

  2. Transaksi dan pemicu MySQL

  3. Radius 40 kilometer menggunakan lintang dan bujur

  4. Tidak dapat mendeteksi nilai nol dari JSON_EXTRACT

  5. Kesalahan MySql:Tidak dapat memperbarui tabel dalam fungsi/pemicu tersimpan karena sudah digunakan oleh pernyataan yang memanggil fungsi/pemicu tersimpan ini