PHP 显示每个 div 的一定数量的记录

标签 php html mysql css

好吧,我目前正在一个网站上工作,并且我试图在网站的一部分中显示来自 SQL 数据库的一些数据。我希望数据以此处所示的方式显示:

      <div class="project-list">
                    <ul>
                     <?php
                    try {

                        $stmt = $db->query('SELECT movieID, movieName, movieDesc, movieYear FROM latest ORDER BY movieID DESC');
                        while($row = $stmt->fetch()){
                                    echo '<li>';
                                        echo '<a href="#" class="no-underline">';
                                        echo '<div class="project">';
                                            echo '<h2 class="project-date">'.$row['movieYear'].'</h2>';
                                            echo '<div class="poster"><img src="assets/img/FoTD_Poster.png" width="160" height="188"></div>';
                                            echo '<h2 class="project-title" align="center"><b>'.$row['movieName'].'</b></h2>';
                                            echo '</a>';
                                        echo '</div>';
                                    echo '</li>';
                                    echo '<li>';
                        }

                    } catch(PDOException $e) {
                        echo $e->getMessage();
                    }
                ?>
                    </ul>
                </div>

基本上这应该显示一条记录,但确实如此,我的问题是我的样式表设置方式是它只允许每个元素列表/行显示三个元素 div。而且我不太清楚如何制作它,所以我只能为每个 div 显示 3 条记录并用 PHP 重置。

最佳答案

如果我答对了您的问题,您希望使用 PHP 将 div 的数量限制为 3 个。尝试添加 LIMIT 3到您的 SQL 查询:

$stmt = $db->query('SELECT movieID, movieName, movieDesc, movieYear FROM latest ORDER BY movieID DESC LIMIT 3');

我还注意到有一个 echo '<li>';在你的 while 循环结束附近不合适。这可能是问题,也可能不是问题,但如果不需要,我会删除它。

编辑:我可以再试一次吗?

如果我这次没猜错,您希望 PHP 生成任意数量的 <div class="project-list">最多 3 <li>在他们每个人里面,对吧?

给你:

<?php
try {
    // this line is for my local setup, you have to change or remove it:
    $db = new PDO('mysql:host=localhost;dbname=stackmovies;charset=utf8', 'root', '');

    $stmt = $db->query('SELECT movieID, movieName, movieDesc, movieYear FROM latest ORDER BY movieID DESC');
    $i = 0;
    while($row = $stmt->fetch()){
        echo "\n"; // for debugging
        if ($i % 3 == 0) {
            echo '<div class="project-list">';
            echo '<ul>';
        }
        echo "\n"; // for debugging
        echo '<li>';
        echo '<a href="#" class="no-underline">';
        echo '<div class="project">';
        echo '<h2 class="project-date">'.$row['movieYear'].'</h2>';
        echo '<div class="poster"><img src="assets/img/FoTD_Poster.png" width="160" height="188"></div>';
        echo '<h2 class="project-title" align="center"><b>'.$row['movieName'].'</b></h2>';
        echo '</a>';
        echo '</div>';
        echo '</li>';
        echo "\n"; // for debugging
        if ($i % 3 == 2) {
            echo '</ul>';
            echo '</div>';
        }
        echo "\n"; // for debugging
        $i++;
    }
    if ($i > 0 && ($i - 1) % 3 != 2) {
        echo '</ul>';
        echo '</div>';
    }

} catch(PDOException $e) {
    echo $e->getMessage();
}
?>

关于PHP 显示每个 div 的一定数量的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423210/

相关文章:

php - 检查sql数据库中是否存在email,然后输出(关于running if inside if)

mysql - 用于保存 Spring JPA 实体的 MySQL 驱动程序类是什么?

php - 复制行,同时忽略基于特定列的重复项

javascript - Ruby on Rails 和服务 worker

javascript - 使用 <object> 中的 SVG 是否允许点击事件传播到父处理程序?

php - 当文本等于单选按钮的值时选择单选按钮

php - 登录时使用两个数据库

javascript - 使用 Javascript/PHP : Trying to display background image - logic wrong?

php - 遍历记录,更新一条记录,然后退出

php - Mysql Php 总是得到相同的返回