当前位置: 首页 > 知识库问答 >
问题:

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

薛兴德
2023-03-14

好的,我目前正在一个网站上工作,对于网站的一部分,我试图显示一些来自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重置。

共有2个答案

束研
2023-03-14

这是你想做的方式。利用array_chunk。您需要将sql中的所有数据添加到一个数组中(在本例中,我们将其称为$data)。

while($row = $stmt->fetch()) {
    $data[] = $row;
}

接下来,我们将把数据分成3的数组。

$chunked = array_chunk($data, 3);

然后,您需要做的就是使用线束2foreach()循环,根据需要将其打印出来。

// start the loop of chunks
foreach($chunked as $chunk) {
    // you'd open the row here
    // get the items in the specific chunk
    foreach($chunk as $item) {
        // you'd find your data elements in $item 
    }
    // you'd close the row off here
}

下面是一个有效的示例

张和豫
2023-03-14

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

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

我还注意到有一个echo'

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

如果这次我说对了,您希望PHP生成任意数量的

干得好:

<?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();
}
?>

 类似资料:
  • 我有记录列表显示在一个div和另一个div。在一个div中显示前10条记录,在另一个div中显示其他以下记录。我试图得到它,但没有显示结果 密码

  • 问题内容: 嗨,我在下面的表格中记录了活动和分数 我需要从活动中返回所有记录 退货 然后我需要基于来自点表的用户ID对用户点求和 退货 一切都很好,但我需要将它们放在一起给用户,即 有指针吗? 问题答案: 使用外部联接: 或子查询:

  • 显示特定的通话记录     可显示指定的通话记录。选择通话记录后按下按钮,并选择选项选单的[依种类排列记录]。 通话记录可从以下项目中选择。 所有通话记录 显示通话记录。 XX件未处理事项 显示前次确认后发生的记录。 没有其他记录时,会显示[暂无任何未处理事项]。 语音消息 显示语音消息。 未接来电 显示未接来电记录。 已接来电 显示已接来电记录。 已拨电话 显示已拨电话记录。 提示 亦可于显示通

  • 我有以下列表-> 该逻辑将获取那些满足此条件的记录,也将获取那些不满足此条件的记录,如D/E的最后两行,雇员没有为工资定义任何值,我也应该获取这些值。

  • 本文向大家介绍Bootstrap-table自定义可编辑每页显示记录数,包括了Bootstrap-table自定义可编辑每页显示记录数的使用技巧和注意事项,需要的朋友参考一下 写在前面:   最近在做的person功能,由于后期系统中person人数较多,不利用查找person,故需求方将要求可以自己编辑每页显示的数目,而不是固定的写死每页显示的数目。   下面先来看下bootsrap-table

  • 在桌面视图中,输出是正确的,但在移动视图中,我们希望生成每个div都有自己的描述。 现在我的问题是描述显示在所有四个元素之后,我们希望在移动视图中显示每个div的底部。 任何人都可以通过jQuery帮助我。我试图在jQuery的帮助下使用偏移量和高度,但这是行不通的。 null null