0

我正在做一个项目(房地产),需要显示一个属性列表。(图片)属性在数据库中。属性可以有两个“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; ?>

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

4

1 回答 1

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

我显然在猜测您的数据库架构。然后,您可以像原始代码一样对结果进行 foreach。

于 2013-07-19T12:57:45.297 回答