2011-07-28 141 views
0

我從閱讀本網站的其他職位,有一個類似的解決方案是什麼,我試圖做看,但我要建在Dreamweaver中,一些語法是不同的,我不確定我需要什麼零件。PHP分組while循環

我覺得有一個如果{} statment添加,只是不知道在哪裏...

所以我有一個頁面,從遊輪的列表中選擇,用戶選擇他們想去從下拉菜單中選擇,然後顯示前往目的地的郵輪。簡單。接下來,他們可以選擇時,他們喜歡旅遊,與跳轉菜單縮小搜索結果到一個特定的月份

所以我的第一組記錄都去說加勒比遊輪。

有四個,在2012年4月二和二在2012年5月

所以我有四個顯示在我的名單,但現在我希望用戶選擇一個月份,並通過填充跳與目標過濾記錄菜單,我得到四個選項

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

2012年5月 什麼其實我想要的是

一pril 2012 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的標準循環來填充菜單中的代碼。我想寫的是月份,然後是下一行,如果月份相同,則忽略它。

在此先感謝

豐富:)

回答

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查詢。

+0

這一個仍然產生目的地的正確的列表,但後來要麼沒有個月,或月缺一的列表。例如。我在十二月4個遊輪,他們都顯示,但在本月選擇只有三個12月份,所以到那裏,我認爲... – Rich

+0

我想我知道爲什麼我收到一個奇怪的結果也一樣,的出發場是一個日期時間字符串,像這樣2012-01-05 14:30。所以我想我只需要得到月份和今年的對比... – Rich

+0

更新上面,它現在的作品,除了當有目的地只有一個記錄,在這種情況下,沒有一個月的選擇... \t \t如果(日期( 'F Y',的strtotime($ row_cruises [ '離去']))= $一個月!){$ 月=日期( 'F Y',的strtotime($ row_cruises [ '離去'])); ?> – Rich