为什么我的数据翻倍?
问题描述:
因为当我显示来自我的预订引擎结果由于某种原因,它显示的结果如下:为什么我的数据翻倍?
堂屋
主房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>
答
据我可以看到,整个事情是为每一个$room
执行。每种情况下均打印h2
。它们都是echo $room['desc']
,它似乎包含你只想要一次的字符串。所以我想你只是把你的第一个<tr>...</tr>
换成if ($room[desc] == "Main Room" || $room[desc] == "Main Room 2"):
... endif;
。第二个与Spare Room
相同。然而,如果你的描述不是这四个值,我不知道你想要做什么。现在可以打印<tr>
s,因为<div>
内部的else
条件似乎不同。
这不是你用来产生结果的代码,显示了它充满语法错误 – 2012-11-13 02:26:36
这显然不是完整的代码,但是这是被重复的位。如果您发现上述错误,请通知我。谢谢! – Dave
@Dave主要是这样的:'echo“率:$ 59.00';'......你有两次这样做 –