2012-11-13 38 views
-2

因爲當我顯示來自我的預訂引擎結果由於某種原因,它顯示的結果如下:爲什麼我的數據翻倍?

堂屋
主房2
堂屋
主房2
備用房
備用室2
備用房
備用室2

應爲顯示:

堂屋
主房2
備用房
備用室2

希望有人能看到爲什麼它是從這個翻倍。

<?php 

$array_rooms =null; 

    if (get_user_meta(get_current_user_id(),'admin',true)) { 
     $admin = true; 
    } else { 
     $admin = false; 
     } 

    ?> 

<head> 
    </head> 

    <body id="results"> 

     <h1>Available <em>Rooms</em></h1> 
     <table> 

      <?php 
      if($array_rooms != null){ 
       foreach($array_rooms as $key=>$room) { 


       $special = ''; 
       $roomRatePlanID = 119; 
       if($key==0){ 
        $room['desc'] = "Main Room"; 
        $special = '&whp=1'; 
        $roomRatePlanID = 68; 
       } 
       if($key==1){ 
        $room['desc'] = "Main Room 2"; 
        $special = '&whp=1'; 
        $roomRatePlanID = 68; 
       } 
       if($key==2){ 
        $room['desc'] = "Spare Room"; 
        $special = '&whp=1'; 
        $roomRatePlanID = 68; 
       } 
       if($key==3){ 
        $room['desc'] = "Spare Room 2"; 
        $special = '&whp=1'; 
        $roomRatePlanID = 68; 
       } 
?> 
      <tr<?php if (!get_user_meta(get_current_user_id(),'admin',true) && strpos($room['desc'],'Main Room') !== false) echo ' class="disabled"'; ?>> 
       <td> 
        <div> 
         <h2><a href="/rooms/" target="_blank"><?php echo $room['desc'] ." " . $room['available'] ;?></a></h2> 
         <div><?php 
         if ($room['desc'] == "Main Room"){ 
          echo "<strong>Rate: $89.00</strong>'; 
         }elseif(($room['desc'] == "Main Room 2")){ 
          echo "<strong>$79.00</strong>"; 
         } else{ 
          if ($admin) 
           $netrate = number_format($room['rates'][119],2); 
          else 
           $netrate = number_format($room['rates'][20] - ($room['rates'][20]/100 * get_user_meta(get_current_user_id(),'package',true)),2); 

          echo "Customer Rate: <strong>$".number_format($room['rates'][20],2).'</strong>/Net Rate: <strong>$'.$netrate.'</strong>'; 
         }?></div> 
         <div><a href="/book/summary?roomTypeCode=<?php echo $room['roomTypeCode'] . $special;?>">Book</a></div> 
         </div> 
       </td> 
      </tr> 

    <tr<?php if (!get_user_meta(get_current_user_id(),'admin',true) && strpos($room['desc'],'Main Room') !== false) echo ' class="disabled"'; ?>> 
        <td> 
         <div> 
          <h2><a href="/rooms/" target="_blank"><?php echo $room['desc'] ." " . $room['available'] ;?></a></h2> 
          <div><?php 
          if ($room['desc'] == "Spare Room"){ 
           echo "<strong>Rate: $59.00</strong>'; 
          }elseif(($room['desc'] == "Spare Room 2")){ 
           echo "<strong>$49.00</strong>"; 
          } else{ 
           if ($admin) 
            $netrate = number_format($room['rates'][119],2); 
           else 
            $netrate = number_format($room['rates'][21] - ($room['rates'][21]/100 * get_user_meta(get_current_user_id(),'package',true)),2); 

           echo "Customer Rate: <strong>$".number_format($room['rates'][20],2).'</strong>/Net Rate: <strong>$'.$netrate.'</strong>'; 
          }?></div> 
          <div><a href="/book/summary?roomTypeCode=<?php echo $room['roomTypeCode'] . $special;?>">Book</a></div> 
          </div> 
        </td> 
       </tr> 
      <?php } }else{ echo 'no results'; }?> 


    </body> 

</html> 
+0

這不是你用來產生結果的代碼,顯示了它充滿語法錯誤 – 2012-11-13 02:26:36

+0

這顯然不是完整的代碼,但是這是被重複的位。如果您發現上述錯誤,請通知我。謝謝! – Dave

+0

@Dave主要是這樣的:'echo「率:$ 59.00';'......你有兩次這樣做 –

回答

1

據我可以看到,整個事情是爲每一個$room執行。每種情況下均打印h2。它們都是echo $room['desc'],它似乎包含你只想要一次的字符串。所以我想你只是把你的第一個<tr>...</tr>換成if ($room[desc] == "Main Room" || $room[desc] == "Main Room 2"): ... endif;。第二個與Spare Room相同。然而,如果你的描述不是這四個值,我不知道你想要做什麼。現在可以打印<tr> s,因爲<div>內部的else條件似乎不同。

+0

感謝m.buettner - 如果這些房間是可用的,它們是哪個,並以管理員身份登錄,它應該顯示它們,每個房間只顯示兩次,如果我用'||'在陳述中顯示不同的價格取決於哪個房間... – Dave

+0

對不起,這個問題是真的缺乏上下文。很難幫你這樣做。你只是放棄了你所看到的一個非常簡化的版本,並拋棄了你的代碼的一部分(由於無可比擬的引用,它甚至會拋出大量的錯誤)。請告訴我們你實際想要達到什麼以及這些變量代表什麼。那麼也許,有人可以幫助你。 –

+0

沒問題 - 我會在幾分鐘內更新問題。只是認爲如果願意幫助的人(比如你自己)不得不通過一噸代碼來翻身,這可能會更困難。再次感謝 – Dave