为什么我的数据翻倍?

问题描述:

因为当我显示来自我的预订引擎结果由于某种原因,它显示的结果如下:为什么我的数据翻倍?

堂屋
主房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';'......你有两次这样做 –

据我可以看到,整个事情是为每一个$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