Php 我的选择菜单每次显示每个港口(伦敦、利物浦、都柏林),对于每个记录,我只需要每个港口一次

Php 我的选择菜单每次显示每个港口(伦敦、利物浦、都柏林),对于每个记录,我只需要每个港口一次,php,mysql,Php,Mysql,这是一个查询,返回对我的邮轮和票价表的搜索: SELECT *, MIN(fares.offered) FROM cruises,fares WHERE cruises.departs > CURDATE() AND (cruises.destination LIKE %s OR cruises.second_destination LIKE %s) AND EXTRACT(YEAR_MONTH from cruises.departs) LIKE %s AND cru

这是一个查询,返回对我的邮轮和票价表的搜索:

SELECT *, MIN(fares.offered) FROM cruises,fares 
WHERE cruises.departs > CURDATE() AND (cruises.destination LIKE %s OR 
  cruises.second_destination LIKE %s) AND 
  EXTRACT(YEAR_MONTH from cruises.departs) LIKE %s 
  AND cruises.fromport LIKE %s 
  AND cruises.ship LIKE %s AND cruises.live = 'Y' 
  AND fares.cruise_id = cruises.id 
GROUP BY fares.cruise_id ORDER BY cruises.departs, cruises.fromport"
我有一些跳转菜单,用户可以缩小搜索范围,例如上面的查询返回2012年7月的所有邮轮,有一些,一些从伦敦出发,一些从利物浦出发

我的port select菜单中填充了所有的航班,如下所示

London
Liverpool
London
London
Liverpool
七月份每返回一次航行记录

我只想要

London
Liverpool
这是选择代码:

<select name="jumpMenu3" id="jumpMenu3" onchange="MM_jumpMenu('parent',this,0)">
    <option value="">Select a port</option>
    <?php
    $port = ''; 
    mysql_data_seek($cruises, 0);
    while ($row_cruises = mysql_fetch_assoc($cruises)) { 
        if ($row_cruises['fromport'] != $port) {
            $port = $row_cruises['fromport'];
    ?>
    <option value="index.php?subj=2&destination=<?php 
       echo urlencode($row_cruises['destination']);
    ?>&departs=<?php 
      echo date('Ym',strtotime($row_cruises['departs']));
    ?>&port=<?php 
      echo urlencode($port);?>"<?php 
    if ($_GET['port'] == $row_cruises['fromport']) {
      echo "selected=\"selected\"";
    } 
    ?>><?php echo $port; ?></option>
    <?php } ;
    }
    if(mysql_num_rows($cruises) > 0) {
        mysql_data_seek($cruises, 0);
        $row_cruises = mysql_fetch_assoc($cruises);
    }
    ?>
    </select>

选择一个端口

最好的方法是通过另一个查询来检索端口名,如下所示:

SELECT DISTINCT fromport FROM cruises WHERE cruises.departs > CURDATE()
您可以添加其他应适用的条件

第二种方法可以在PHP中完成:

$ports = array(); 
mysql_data_seek($cruises, 0);
while ($row_cruises = mysql_fetch_assoc($cruises)) { 
    if (!in_array($row_cruises['fromport'], $ports)) {
        $ports[] = $row_cruises['fromport'];
?>
<option value="index.php?subj=2&destination=<?php echo urlencode($row_cruises['destination']);?>&departs=<?php echo date('Ym',strtotime($row_cruises['departs']));?>&port=<?php echo urlencode($row_cruises['fromport']);?>"<?php if ($_GET['port'] == $row_cruises['fromport']) {echo "selected=\"selected\"";}?>><?php echo $row_cruises['fromport']; ?></option>
<?php
    }
}
if(mysql_num_rows($cruises) > 0) {
    mysql_data_seek($cruises, 0);
    $row_cruises = mysql_fetch_assoc($cruises);
}
$ports=array();
mysql_data_seek($cruises,0);
而($row_cruises=mysql_fetch_assoc($cruises)){
if(!in_数组($row_巡航['fromport',$port)){
$ports[]=$row_邮轮['fromport'];
?>