使用php循环获取mysql数据并重复,直到获得一定数量

2j4z5cfb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(361)

我有一个存储图像细节的数据库表。从这个我想得到一个准确的6个图像(仅作为字符串),并显示图像作为背景图像的数字标签。
我正在努力得到6个图像路径,即使在数据库中只有4个。在这种情况下,我想再次回到前两行。另外,如果查询中有10行,我只想随机选择6行。
到目前为止我。。。
函数文件

// Slideshow images (Homepage)
function get_slideshow() {
    global $conn;
    $sql =  "SELECT id, caption, image, page_id 
                FROM slideshow
                ORDER BY id DESC";
    $stmt = $conn->prepare($sql);
    $stmt->execute();
    $result = $stmt->get_result();
    $stmt->free_result();
    $stmt->close();
    return $result;
}

索引.php

$slideshow = get_slideshow();

<?php
    if ($slideshow->num_rows > 0) {
        while($row = $slideshow->fetch_assoc()) {
?>
        <figure style="background-image:url(<?php echo '/photos/'.$row['image']; ?>)"></figure>
<?php   
        }
    }
?>

任何帮助都会很好。提前感谢:)

v09wglhw

v09wglhw1#

从查询中删除order by子句。在数组中获得结果集后,使用php的shuffle函数。洗牌后,使用循环从洗牌数组的前6个图像生成图像。
根据db表中有多少图像,使用order by rand可能会造成相当糟糕的性能损失

相关问题