php分组一段时间循环

时间:2011-07-28 08:10:18

标签: php loops dreamweaver

我从阅读本网站上的其他帖子看到,有一个类似于我想要做的解决方案,但是当我在Dreamweaver中构建时,一些语法不同,我不确定我需要哪些部分

我认为有一个If {}声明要添加,只是不确定在哪里...

所以我有一个页面用于从邮轮假期列表中选择一个,用户从下拉菜单中选择他们想去的地方,然后显示前往该目的地的游轮。简单。接下来,他们可以选择他们想要旅行的时间,通过跳转菜单缩小搜索结果到特定月份

所以我的第一组记录就是加勒比地区的所有游轮。

2012年4月有两个,2012年5月有两个。

所以我已经在我的列表中显示了所有四个,但现在我希望用户选择一个月,并通过使用目标过滤记录集填充跳转菜单,我得到四个选择

2012年4月 2012年4月 2012年5月 2012年5月

我真正想要的是

2012年4月 2012年5月

如果我在MySQL查询中按月对记录进行分组,我不会在目的地列表中获得我们想要的所有四次巡航。

以下是“月选择器”菜单的代码

<select name="jumpMenu2" id="jumpMenu2" onchange="MM_jumpMenu('parent',this,0)">
        <option value="">Select a date</option>
        <?php do { ?>

<option value="chooseacruise.php?destination=<?php echo    urlencode($row_cruises['destination']);?>&<?php echo $row_cruises['departs']?>"><?php echo  date('F Y', strtotime($row_cruises['departs'])); ?></option>

<?php } while ($row_cruises = mysql_fetch_assoc($cruises));
                $rows = mysql_num_rows($cruises);
                if($rows > 0) {
                mysql_data_seek($cruises, 0);
            $row_cruises = mysql_fetch_assoc($cruises);
              }
            ?>
      </select>

while循环是Dreamweaver填充菜单的标准循环。我想要写月份,然后在下一行,如果月份相同,则忽略它。

提前致谢

Rich:)

1 个答案:

答案 0 :(得分:0)

首先,这与Dreamweaver无关。语法是一样的。这是一个简单的解决方案:

<select name="jumpMenu2" id="jumpMenu2" onchange="MM_jumpMenu('parent',this,0)">
    <option value="">Select a date</option>
    <?php
        $month = ''; 
        while ($row_cruises = mysql_fetch_assoc($cruises)) { 
            if ($row_cruises['departs'] != $month) {
                $month = $row_cruises['departs'];
                ?>
                <option value="chooseacruise.php?destination=<?php echo    urlencode($row_cruises['destination']);?>&<?php echo $row_cruises['departs']?>"><?php echo  date('F Y', strtotime($row_cruises['departs'])); ?></option>
            <?php } ;
        }

        if(mysql_num_rows($cruises) > 0) {
            mysql_data_seek($cruises, 0);
            $row_cruises = mysql_fetch_assoc($cruises);
        }
    ?>
  </select>

请注意,您必须在出发时订购sql查询。