gpt4 book ai didi

php - 我的选择菜单每次显示每个记录的每个端口(伦敦、利物浦、都柏林),我只想要每个端口一次

转载 作者:行者123 更新时间:2023-11-29 08:53:38 26 4
gpt4 key购买 nike

这是查询,它返回对我的游轮和票价表的搜索:

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 月的所有游轮,其中有一些,一些从伦敦出发,一些从利物浦出发。

我的港口选择菜单中包含所有航类,如下所示

London
Liverpool
London
London
Liverpool

每次返回 7 月份的航行记录一次。

我只要

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>

我考虑过 GROUP BY,但我不能在港口搜索查询中使用它,因为显然每个港口都有多个航类,也许我需要对月份选择选项进行单独的查询 - 或者我可以与 php 组?

最佳答案

最好的方法是另一个查询,只是为了检索端口名称,如下所示:

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);
}

关于php - 我的选择菜单每次显示每个记录的每个端口(伦敦、利物浦、都柏林),我只想要每个端口一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com