Bir sütundaki verilere dayalı MySQL SELECT deyimi Ayrılması

2 Cevap php

Ben aracın her bir kategori için ayrı ayrı listeler oluşturmak için sonuçları ile masaya MySQL tablodan (Bu durumda, araç bilgilerini) veri almak ve daha sonra döngü gerekir. Aracın her türü için bir deyim var zorunda kalmadan bunu yapmak için basit bir yolu var mı?

Ben sadece bir kategori için bu yapıyor olsaydı, ben şu kullanabilirsiniz:

<?php
$sql = "SELECT * FROM apparatus WHERE vehicleType = 'Support';
$getSQL = mysql_query($sql);
?>

<ul>
<?php while ($vehicleData = mysql_fetch_assoc($getSQL)) {?>
<li><?php echo $vehicleData['name'];?></li>
<?php } ?>
</ul>

Vs .. Araç dört farklı türleri için bunu yapmak gerekir.

Teşekkürler!

2 Cevap

Mark'ın Yanıt bina, tüm araçları seçebilir, ve sonuç php set yeniden düzenleyebilirsiniz:

<?php
  $sql = "SELECT * FROM apparatus ORDER BY vehicleType";
  $getSQL = mysql_query($sql);
  // transform the result set:
  $data = array();
  while ($row = mysql_fetch_assoc($getSQL)) {
    $data[$row['vehicleType']][] = $row;    
  }
?>
<?php foreach ($data as $type => $rows): ?>
  <h2><?php echo $type?></h2>
  <ul>
  <?php foreach ($rows as $vehicleData):?>
    <li><?php echo $vehicleData['name'];?></li>
  <?php endforeach ?>
  </ul>
<?php endforeach ?>

Bu kullanabilirsiniz:

SELECT * FROM apparatus
WHERE vehicleType IN ('foo', 'bar', 'baz', 'qux')
ORDER BY vehicleType

Bu güzel kolay yineleme için gruplandırılmış dört araç tipleri, dönecektir. Tüm araç tipleri istiyorsanız, WHERE yan tümcesi gerekmez.