PHP группирует цикл - PullRequest
       3

PHP группирует цикл

0 голосов
/ 28 июля 2011

Я вижу, читая другие посты на этом сайте, есть решения, схожие с тем, что я пытаюсь сделать, но, поскольку я создаю в Dreamweaver, некоторые синтаксис отличается, и я не уверен, какие части мне нужны .

Я думаю, что есть добавление If {}, просто не знаю, где ...

Таким образом, у меня есть страница для выбора из списка круизных отпусков, пользователь выбирает, куда он хотел бы пойти, из выпадающего меню, которое затем показывает круизы, идущие к этому месту назначения. Легко. Затем они могут выбрать, когда они хотели бы путешествовать, сузив результат поиска с помощью меню перехода до определенного месяца

Итак, мой первый набор рекордов - это все круизы, которые я хочу сказать, Карибский бассейн.

Их четыре, два в апреле 2012 года и два в мае 2012 года.

Итак, в моем списке отображаются все четыре, но теперь я хочу, чтобы пользователь выбрал месяц, и, заполнив меню переходов набором записей, отфильтрованных по назначению, я получу четыре варианта

апрель 2012 Апрель 2012 Май 2012 Май 2012

Что я на самом деле хочу, это

апрель 2012 Май 2012

Если я сгруппирую записи по месяцам в запросе 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 для заполнения меню. Я хочу написать месяц, а затем в следующей строке, если месяц такой же, игнорировать его.

Заранее спасибо

Рич:)

1 Ответ

0 голосов
/ 28 июля 2011

Во-первых, это не имеет никакого отношения к 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 отправление.

...