具有不同数据库状态的Foreach列表

时间:2013-07-19 12:44:45

标签: php database foreach

我正在开发一个项目(房地产),需要显示一个属性列表。 (图片) 属性位于数据库中。属性可以有两个'objects_status':1 =出售,2 =出售。 已售出的属性在图像顶部显示“已售出”横幅。

我确实设法使用'foreach'显示属性。它随机显示属性。 我要添加的内容如下:列表中总共有2个已售出的属性。

我不想使用2个单独的foreach(第一个显示2个出售第二个显示出售物业),但在出售物业之间随机显示2个出售物业。

我使用的代码:

  <?php foreach($aBuildings as $aBuilding): ?>
                <div class="span2 <?php echo ($aBuilding['objects_status'] == 1 ? 'sold' : ''); ?>">
                    <figure>
                        <?php if($aBuilding['objects_status'] == 1){ echo '<div class="sold-banner">Afgelopen</div>';} else if($aBuilding['objects_status'] == 2){ echo '<div class="verkocht-banner">Verkocht</div>';} else{ echo '<div class="days-left">' . $aBuilding['daysleft'] . '</div>';} ?>
                        <img src="/uploads/woningen/thumb/<?=$aBuilding['objects_photo_thumb']?>" alt="">
                    </figure>
                    <ul>
                        <li>Normaal &euro; <?php echo number_format($aBuilding['objects_price'], 0, '', '.'); ?></li>
                        <li class="now">Nu &euro; <?php echo number_format($aBuilding['objects_discount_price'], 0, '', '.'); ?></li>
                        <li>Korting <?php echo round(-1 * ($aBuilding['objects_discount_price'] / $aBuilding['objects_price'] * 100 - 100)); ?>%</li>
                    </ul>
                </div>
                <?php endforeach; ?>

我似乎无法让它发挥作用。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我建议更改数据库查询以撤回所需的结果。例如,如果您使用SQL编写:

SELECT *
FROM properties AS sale
WHERE sale.objects_status = "for sale"
   UNION
SELECT *
FROM properties AS sold
WHERE sold.objects_status = "sold"
LIMIT 2

我猜你的数据库架构显然。然后,您可以像原始代码一样预测结果。