【问题标题】:Create a new div class row every 3 items fetch from SQL with PHP使用 PHP 从 SQL 获取每 3 个项目创建一个新的 div 类行
【发布时间】:2017-11-06 06:34:01
【问题描述】:

我正在尝试创建一个画廊。每 3 个图像我需要创建一个新的 div 并重新开始。(尝试将此 html 转换为 php-sql)

我正在尝试使用这个 php 代码

<?php
  //get images from database
  $query = $con->query("SELECT * FROM images ORDER BY id");

   if($query->num_rows > 0){
    while($row = $query->fetch_assoc()){
    $imagethumb = 'images/thumb/'.$row["file_name"];
    $imagefront = 'images/'.$row["file_name"];

    $i = 0;

    if($i++ % 3 == 0){
    ?>
    <div class=" bd-layoutcontainer bd-columns bd-no-margins">
       <div class="bd-container-inner">
          <div class="container-fluid">
              <div class="row">                             
                   <div class="bd-columnwrapper-136 <?php  
                       list($width, $height) = getimagesize($imagethumb);                                
                       if($width > 298){
                          echo 'col-sm-6';
                       }else{
                          echo 'col-sm-3';
                     }
                   ?>">
                   <?php echo '<div class="bd-layoutcolumn-136 bd-column">
                               <div class="bd-vertical-align-wrapper">
                               <div class="bd-hoverbox-6 bd-effect-fade">
                               <div class="bd-slidesWrapper">' ?>
                        <a href="<?php echo $imagethumb; ?>" data-fancybox="group" data-caption="<?php echo $row["title"]; ?>" >
                         <img src="<?php echo $imagefront; ?>" alt="" />
                        </a>
                  <?php echo '
                              </div>
                              </div> 
                              </div>
                              </div>'
                  ?> 
                  </div>
            </div>
      </div>
     </div>
   <?php
      }
      }
      } 
?>

我正在使用 if 语句 $i % 3 == 0 来创建一个新的 div,但是我将每个图像都放在其他图像中,而不是像图片一样连续三个图像.. 这就是我得到的

我还应该做什么?

我需要每 3 个 imgs 来创建

     <div class=" bd-layoutcontainer bd-columns bd-no-margins">
       ..............
     </div>

而且 div 从未乘以 3,我只得到了一个 div

【问题讨论】:

  • 您能否附上您所获得的屏幕截图?如果我帮不上忙,其他人也许可以。
  • 显示你的 CSS。尝试将 float:left 用于 bd-layoutcontainer 类。因为我没有看到你的风格,所以我无法准确判断它是否有效。
  • @AMH 我有相同的 css...我用 html 创建了那个画廊并试图将其转换为 php.. 所以它与 css 无关
  • 旁注:如果这是您的完整代码,则您缺少&lt;div class=" bd-layoutcontainer bd-columns bd-no-margins"&gt; 的结束 div。
  • @Fred-ii- 我刚刚更新了我的问题,谢谢

标签: php jquery html css mysql


【解决方案1】:
</div>
<div class=" bd-layoutcontainer bd-columns bd-no-margins">

我认为如果语句 $i % 3 == 0 你应该添加关闭标签并创建一个新的 div。希望解决你的问题。

【讨论】:

  • 这意味着上面需要一个开放的 div,这不在他们发布的代码中。
  • 还有更多。你应该把他们的代码放在一个(代码)编辑器中。
  • 是的。我的意思是第一个在“if statement $i % 3==0”之外打开和关闭div,在里面添加关闭div,如果不是结束循环,则添加打开div。
【解决方案2】:

定义 $i = 0;在while循环之前

<?php
  //get images from database
  $query = $con->query("SELECT * FROM images ORDER BY id");

   if($query->num_rows > 0){
$i=0;
while($row = $query->fetch_assoc()){
$imagethumb = 'images/thumb/'.$row["file_name"];
$imagefront = 'images/'.$row["file_name"];

if($i++ % 3 == 0){
?>
<div class=" bd-layoutcontainer bd-columns bd-no-margins">
   <div class="bd-container-inner">
      <div class="container-fluid">
          <div class="row">                             
               <div class="bd-columnwrapper-136 <?php  
                   list($width, $height) = getimagesize($imagethumb);                                
                   if($width > 298){
                      echo 'col-sm-6';
                   }else{
                      echo 'col-sm-3';
                 }
               ?>">
               <?php echo '<div class="bd-layoutcolumn-136 bd-column">
                           <div class="bd-vertical-align-wrapper">
                           <div class="bd-hoverbox-6 bd-effect-fade">
                           <div class="bd-slidesWrapper">' ?>
                    <a href="<?php echo $imagethumb; ?>" data-fancybox="group" data-caption="<?php echo $row["title"]; ?>" >
                     <img src="<?php echo $imagefront; ?>" alt="" />
                    </a>
              <?php echo '
                          </div>
                          </div> 
                          </div>
                          </div>'
              ?> 
              </div>
        </div>
  </div>
 </div>
   <?php
  }
  }
  } 
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-14
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2014-10-03
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多