我需要帮助解决一段时间以来一直困扰的问题。
我有一个广告列表,显示不同类别的车辆 - 汽车,摩托车,卡车,船只等。我有一个下拉列表应该作为过滤器。根据列表中的车辆,下拉值应该等于车辆的类别。
例如,如果在列表中有3辆车:奥迪,宝马和保时捷以及2艘船:Cranchi和Azimut,下拉列表应显示5个值:奥迪,宝马,保时捷,Cranchi,Azimut。
然而,对于上面的示例,我只设法在下拉列表中显示所有来自数据库的汽车和船只,但不仅仅是与列表条目相关。
这是我的代码,任何想法将不胜感激:
<option value="">Please Select</option>
<?php
if($all=='ALL')
{
foreach($arrVehicleType as $arrVehicleTypes){
$qry_makes_all = "SELECT * FROM ".$tblprefix."makes WHERE status ='1' AND type = '".$arrVehicleTypes."' ORDER BY title ASC";
$rs_makes_all = $db->Execute($qry_makes_all);
while(!$rs_makes_all->EOF){
$sql_query_all_all = "SELECT type FROM ".$tblprefix."vehicles WHERE user_dealer_id = '".$DealeId."' AND make='".$rs_makes_all->fields['id']."' AND user_dealer_type = 2 AND completed_status = 1 AND status = 1 ";
$rs_results_all_all = $db -> Execute($sql_query_all_all);
$TYPE = $rs_results_all_all -> fields['type'];
?>
<option value="<?php echo $rs_makes_all->fields['id'];?>,<?php echo $rs_makes_all->fields['title']." ($vehicletext)";?>
</option>
<?php $rs_makes_all->MoveNext(); } }} else {
while(!$rs_makes->EOF){?>
<option value="<?php echo $rs_makes->fields['id'];?>,,<?php echo $arrVehicleType[0];?>">
<?php echo $rs_makes->fields['title'];?>
</option>
<?php
$rs_makes->MoveNext(); } } ?>
</select>
答案 0 :(得分:0)
在Mysql中使用DISTINCT。
$qry_makes_all = "SELECT DISTINCT /* list column names */ FROM ".$tblprefix."makes WHERE status ='1' AND type = '".$arrVehicleTypes."' ORDER BY title ASC";
这将从您的表格中选择所有不同的值。