如何根据另一个条件在下拉列表中显示SQL中的特定值

时间:2014-02-11 18:14:29

标签: php mysql database

我需要帮助解决一段时间以来一直困扰的问题。

我有一个广告列表,显示不同类别的车辆 - 汽车,摩托车,卡车,船只等。我有一个下拉列表应该作为过滤器。根据列表中的车辆,下拉值应该等于车辆的类别。

例如,如果在列表中有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>

1 个答案:

答案 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";

这将从您的表格中选择所有不同的值。