我需要从表格中的MySQL表中检索数据(在这种情况下是车辆详细信息),然后遍历结果以为每个类别的车辆生成单独的列表。有没有一种简单的方法可以做到这一点,而不必为每种类型的车辆都有一个SELECT语句?
如果我只针对一个类别执行此操作,我将使用以下内容:
<?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>
...等。需要为四种不同类型的车辆执行此操作。
谢谢!
答案 0 :(得分:4)
在Mark's Answer的基础上,您可以选择所有车辆,并在php中重新排列结果集:
<?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 ?>
答案 1 :(得分:2)
你可以用这个:
SELECT * FROM apparatus
WHERE vehicleType IN ('foo', 'bar', 'baz', 'qux')
ORDER BY vehicleType
这将返回所有四种车型,很好地分组以便于迭代。如果您想要所有车辆类型,则不需要WHERE子句。