Php 在while循环中分配DIV

Php 在while循环中分配DIV,php,sql,Php,Sql,大家好,提前谢谢。所以我有一个while循环,看起来像这样: <?php $limit = 4; $countSql = "SELECT COUNT(book_id) FROM books"; $tot_result = mysqli_query($conn, $countSql); $row = mysqli_fetch_row($tot_result); $total_records = $row[0]; $total_pages = c

大家好,提前谢谢。所以我有一个while循环,看起来像这样:

<?php
    $limit = 4;
    $countSql = "SELECT COUNT(book_id) FROM books";
    $tot_result = mysqli_query($conn, $countSql);
    $row = mysqli_fetch_row($tot_result);
    $total_records = $row[0];
    $total_pages = ceil($total_records / $limit);
    if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
    $start_from = ($page-1) * $limit;
    $sql = "SELECT * FROM books ORDER BY book_id DESC LIMIT $start_from, $limit";
    $rs_result = mysqli_query($conn, $sql);
    while ($row = mysqli_fetch_assoc($rs_result)) {
        $book_titlel=$row['book_titlel'];
        $book_titlel=sanitize($book_titlel);
        echo "<div class='grid_2 col-md_4'><div class='box_9'><div class='img-wrap'><a href='book/".$book_titlel."/".$row['book_id']."'><img alt='".$row['book_title']."' data-src='images/books/".$row['book_picture'].".jpg' src='images/preloader.gif'></a></div><div class='caption'><div class='rating-bar'><div class='rating' style='width: 50%'></div></div><h3 class='text_5 color_1'><a href='book/".$book_titlel."/".$row['book_id']."'>".$row['book_title']."</a></h3><p class='text_6 color_3'><a href='book/".$book_titlel."/".$row['book_id']."'>".$row['book_author']."</a></p></div></div></div>";
    };
?>

在你的循环前面,我把打开的div放在你的包装器上,然后每进入第四个循环,它就会关闭div并打开一个新的

<?php 
$limit = 4;
$countSql = "SELECT COUNT(book_id) FROM books";
$tot_result = mysqli_query($conn, $countSql);
$row = mysqli_fetch_row($tot_result);
$total_records = $row[0];
$total_pages = ceil($total_records / $limit);
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
    $start_from = ($page-1) * $limit;
    $sql = "SELECT * FROM books ORDER BY book_id DESC LIMIT $start_from, $limit";
    $rs_result = mysqli_query($conn, $sql);
    $i = 0;
    echo '<div id="yourwrapper">';
    while ($row = mysqli_fetch_assoc($rs_result)) {
        if($i %4 == 0){echo '</div><div id="yourwrapper">';}
        $book_titlel=$row['book_titlel'];
        $book_titlel=sanitize($book_titlel);
        echo "<div class='grid_2 col-md_4'><div class='box_9'><div class='img-wrap'><a href='book/".$book_titlel."/".$row['book_id']."'><img alt='".$row['book_title']."' data-src='images/books/".$row['book_picture'].".jpg' src='images/preloader.gif'></a></div><div class='caption'><div class='rating-bar'><div class='rating' style='width: 50%'></div></div><h3 class='text_5 color_1'><a href='book/".$book_titlel."/".$row['book_id']."'>".$row['book_title']."</a></h3><p class='text_6 color_3'><a href='book/".$book_titlel."/".$row['book_id']."'>".$row['book_author']."</a></p></div></div></div>";
        $i++;
    };
echo '</div>';

?>

您可以尝试以下方法:

<?php

...

$temp_count = 0;

echo "<div class='row'>";

while($row = mysqli_fetch_assoc($rs_result)){

    if($temp_count  == 4){
        echo "</div><div class='row'>";
        $a = 0;
    }

    echo {YOUR_DATA};
    $temp_count++;


}

echo "</div>";

?>

看看这个:$opened代表什么?我想它没有定义我想我把它拿走了?这只是一个想法,当我回答你的代码,我编辑删除它@TsvetilinBoynovski@TsvetilinBoynovski我再次编辑代码并将$I++放在循环中的较低位置,因为在最初的版本中,第一次运行可能只处理div中的3个元素,现在应该可以工作了。是吗?首先谢谢,非常感谢!现在,当我尝试它时,我发现div肯定有问题,因为它破坏了UI。我试图理解if部分,对我来说似乎很复杂。在它们之前打开div class=row,它在哪里关闭?循环将如何在一个新的div class=row中显示每4个结果,我无法理解。某些div一定不能关闭,我想…应该是if($I%4==0)而不是if($I%4!=0)吗