从满足条件的数据库表中选择所有结果,将结果限制为6-如果结果小于6,则还显示advert / div

我的数据库中有一个名为用户的表。目前,我的表格用户中有5个用户。

我正在尝试使用以下代码从我的表中列出最多6个用户:

<?php $sql = "SELECT * FROM users WHERE status = 'active' AND usertype = 'advertiser' LIMIT 6";
    $result = mysqli_query($conn, $sql); // First parameter is just return of "mysqli_connect()" function
    while($row = mysqli_fetch_assoc($result)){

    echo "<div id='prime'>" .$row['username']. "</div>"; // I just did not use "htmlspecialchars()" function. 

    } ?>

我的查询仅获取5个结果,因为这就是表中的所有内容,如下所示:

User1.  User2.   User3.   User4.   User5.

如果表中没有至少6个用户,那么我仍然希望显示6个项目,替代方法是一种广告div-像这样:

User 1.  User 2.   User 3.   User 4.   User 5.  Advertise Here 6.

如何修改/改进代码以实现上述目标?

评论
  • 保质期
    保质期 回复

    Use for loop:

    $sql = "SELECT * FROM users WHERE status = 'active' AND usertype = 'advertiser' LIMIT 6";
    $result = $conn->query($sql)->fetch_all(MYSQLI_ASSOC);
    
    for ($i = 1; $i <= 6; $i++) {
        $key = $i - 1;
        if (isset($result[$key])) {
            echo "<div id='prime'>" .htmlspecialchars($result[$key]['username']). "</div>";
        } else {
            echo "<div id='prime'>Advertise here</div>";
        }
    }