我需要一些帮助来解决困扰我一段时间的问题。
我有一个广告列表,其中显示不同类别的车辆 - 汽车、摩托车、卡车、船等。我有一个可以用作过滤器的下拉菜单。根据列表中的车辆,下拉值应等于车辆的类别。
例如,如果列表中有 3 辆汽车:奥迪、宝马和保时捷,以及 2 艘船:Cranchi 和 Azimut,则下拉列表应显示 5 个值:Audi、BMW、Porsche、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>
最佳答案
在Mysql中使用DISTINCT。
$qry_makes_all = "SELECT DISTINCT /* list column names */ FROM ".$tblprefix."makes WHERE status ='1' AND type = '".$arrVehicleTypes."' ORDER BY title ASC";
这将从表中选择所有不同的值。
关于php - 如何根据另一个条件在下拉列表中显示 SQL 的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709812/