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


Foreach list with different database status

我正在处理一个项目(房地产),需要显示一个属性列表。(图片)属性在数据库中。房产可以有两个"objects_status":1=待售,2=已售出。已售出的房产会在图片顶部显示"已售出"的横幅。

我确实使用"foreach"显示了属性。它随机显示属性。我想补充的是:名单上总是有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; ?>

我似乎无法使它工作。有什么建议吗?

我建议更改DB查询以获取所需的结果。例如,如果您正在用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

我猜你的数据库模式很明显。然后,您可以像原始代码一样对结果进行foreach。