PHP 循环 - 如何显示具有自己样式和 div 顺序的 2 个项目,然后显示下一个具有反向 div 顺序和类的 2 个项目

标签 php mysql count

我需要以相反的顺序和不同的 css 类显示多个项目(每个项目包含两个 div)。前两项需要有 IMAGE-CONTENT div 的顺序,然后接下来的两项需要有 CONTENT - IMAGE div 的顺序。?

我不知道该怎么办。如何使用计数/模数?

任何人都可以为此提供简单的解决方案吗?

   <?php $result_article = $db->query("SELECT * FROM pm_article WHERE     (id_page = ".$page_id." OR home = 1) AND checked = 1 AND (publish_date IS NULL || publish_date <= ".time().") AND (unpublish_date IS NULL || unpublish_date > ".time().") AND lang = ".LANG_ID." ORDER BY rank");
        if($result_article !== false){
            $nb_articles = $db->last_row_count();

            if($nb_articles > 0){ ?>

        <div class="container-fluid nopadding">

           <div class="isotopeWrapper clearfix isotope">

            <?php
            $article_id = 0;
            $result_article_file = $db->prepare("SELECT * FROM pm_article_file WHERE id_item = :article_id AND checked = 1 AND lang = ".DEFAULT_LANG." AND type = 'image' AND file != '' ORDER BY rank LIMIT 1");
            $result_article_file->bindParam(":article_id",$article_id);
            foreach($result_article as $i => $row){
                $article_id = $row['id'];
                $article_title = $row['title'];
                $article_alias = $row['alias'];
                $article_text = strtrunc(strip_tags($row['text']),270);
                $article_tags = $row['tags'];
                $article_page = $row['id_page'];

                if($article_tags != "") $article_tags = " tag".str_replace(","," tag",$article_tags);

                if(isset($pages[$article_page])){

                    $article_alias = DOCBASE.$pages[$article_page]['alias']."/".text_format($article_alias); ?>




                         <article class="article-<?php echo $article_id; ?> col-lg-6 col-md-6 col-sm-12 nopadding isotopeItem <?php echo $article_tags; ?>" itemscope itemtype="http://schema.org/Article">     
                                <div class="isotopeInner">


                                    <?php $sl=1; ?>

                                    <?php if(($sl==1)||($sl==2)) { ?>


                                        <div class="col-lg-6 col-md-6 col-sm-12 nopadding">
                                            <?php
                                                if($result_article_file->execute() !== false && $db->last_row_count() == 1){
                                                    $row = $result_article_file->fetch(PDO::FETCH_ASSOC);

                                                    $file_id = $row['id'];
                                                    $filename = $row['file'];
                                                    $label = $row['label'];

                                                    $realpath = SYSBASE."medias/article/small/".$file_id."/".$filename;
                                                    $thumbpath = DOCBASE."medias/article/small/".$file_id."/".$filename;
                                                    $zoompath = DOCBASE."medias/article/big/".$file_id."/".$filename;

                                                if(is_file($realpath)){ ?>
                                                <figure class="heightfix more-link"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><img class="img-responsive" src="<?php echo $thumbpath; ?>" alt="<?php echo $label; ?>" /></a></figure>
                                            <?php } 
                                            } ?>
                                        </div>
                                        <div class="col-lg-6 col-md-6 col-sm-12 nopadding isotopeContent">
                                            <div class="sadrzaj right-triangle heightfix">
                                                <div class="text">
                                                    <h3 itemprop="name"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><?php echo $article_title; ?></a></h3>
                                                    <p><?php echo $article_text; ?></p>
                                                    <a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink btn dark"><?php echo $texts['READMORE']; ?></a>
                                                </div>
                                            </div>
                                        </div>


                                    <?php $sl++; } ?>

                                     <?php else { ?>


                                        <div class="col-lg-6 col-md-6 col-sm-12 nopadding isotopeContent">
                                            <div class="sadrzaj left-triangle heightfix">
                                                <div class="text">
                                                    <h3 itemprop="name"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><?php echo $article_title; ?></a></h3>
                                                    <p><?php echo $article_text; ?></p>
                                                    <a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink btn dark"><?php echo $texts['READMORE']; ?></a>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="col-lg-6 col-md-6 col-sm-12 nopadding">
                                            <?php
                                                if($result_article_file->execute() !== false && $db->last_row_count() == 1){
                                                    $row = $result_article_file->fetch(PDO::FETCH_ASSOC);

                                                    $file_id = $row['id'];
                                                    $filename = $row['file'];
                                                    $label = $row['label'];

                                                    $realpath = SYSBASE."medias/article/small/".$file_id."/".$filename;
                                                    $thumbpath = DOCBASE."medias/article/small/".$file_id."/".$filename;
                                                    $zoompath = DOCBASE."medias/article/big/".$file_id."/".$filename;

                                                if(is_file($realpath)){ ?>
                                                <figure class="heightfix more-link"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><img class="img-responsive" src="<?php echo $thumbpath; ?>" alt="<?php echo $label; ?>" /></a></figure>
                                            <?php }
                                            } ?>
                                        </div>


                                    <?php if($sl==3 ?>

                                    <?php $sl++; ?>

                                    <?php else; ?>

                                    <?php $sl=1; } ?>

                                    </div>

                            </article>




                    <?php
                }
            } ?>
        </div>

    </div>
    <?php
            }
        } ?>

Screenshoot 1 - This is now and not good

Screenshoot 2 - I would like this

最佳答案

声明$sl=1;在顶部

选择查询中的以下逻辑用于检查条件

if(($sl==1)||($sl==2))
{
   //code for div 1 & 2

    $sl++;   
}
else  //only else is also enough
{

 //code for div 3 & 4
   if($sl==3)
      $sl++;
   else         //$sl=4
     $sl=1;     //reset value of $sl to 1 so the div 1 is shown next
}

会有很多方法..只是我想到的一个简单的逻辑..试试吧

编辑 您的代码中有一些错误 - 你必须放置 else在同一php标记为 if循环关闭。 - $sl=1应该放在顶部..只是在开始时初始化它 - 没有关闭 if <?php if($sl==3 ?> 中的条件制动器 - else 没有分号

     <?php 
$sl=1; 
$result_article = $db->query("SELECT * FROM pm_article WHERE     (id_page = ".$page_id." OR home = 1) AND checked = 1 AND (publish_date IS NULL || publish_date <= ".time().") AND (unpublish_date IS NULL || unpublish_date > ".time().") AND lang = ".LANG_ID." ORDER BY rank");
            if($result_article !== false){
                $nb_articles = $db->last_row_count();

                if($nb_articles > 0){ ?>

            <div class="container-fluid nopadding">

               <div class="isotopeWrapper clearfix isotope">

                <?php
                $article_id = 0;
                $result_article_file = $db->prepare("SELECT * FROM pm_article_file WHERE id_item = :article_id AND checked = 1 AND lang = ".DEFAULT_LANG." AND type = 'image' AND file != '' ORDER BY rank LIMIT 1");
                $result_article_file->bindParam(":article_id",$article_id);
                foreach($result_article as $i => $row){
                    $article_id = $row['id'];
                    $article_title = $row['title'];
                    $article_alias = $row['alias'];
                    $article_text = strtrunc(strip_tags($row['text']),270);
                    $article_tags = $row['tags'];
                    $article_page = $row['id_page'];

                    if($article_tags != "") $article_tags = " tag".str_replace(","," tag",$article_tags);

                    if(isset($pages[$article_page])){

                        $article_alias = DOCBASE.$pages[$article_page]['alias']."/".text_format($article_alias); ?>




                             <article class="article-<?php echo $article_id; ?> col-lg-6 col-md-6 col-sm-12 nopadding isotopeItem <?php echo $article_tags; ?>" itemscope itemtype="http://schema.org/Article">     
                                    <div class="isotopeInner">




                                        <?php if(($sl==1)||($sl==2)) { ?>


                                            <div class="col-lg-6 col-md-6 col-sm-12 nopadding">
                                                <?php
                                                    if($result_article_file->execute() !== false && $db->last_row_count() == 1){
                                                        $row = $result_article_file->fetch(PDO::FETCH_ASSOC);

                                                        $file_id = $row['id'];
                                                        $filename = $row['file'];
                                                        $label = $row['label'];

                                                        $realpath = SYSBASE."medias/article/small/".$file_id."/".$filename;
                                                        $thumbpath = DOCBASE."medias/article/small/".$file_id."/".$filename;
                                                        $zoompath = DOCBASE."medias/article/big/".$file_id."/".$filename;

                                                    if(is_file($realpath)){ ?>
                                                    <figure class="heightfix more-link"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><img class="img-responsive" src="<?php echo $thumbpath; ?>" alt="<?php echo $label; ?>" /></a></figure>
                                                <?php } 
                                                } ?>
                                            </div>
                                            <div class="col-lg-6 col-md-6 col-sm-12 nopadding isotopeContent">
                                                <div class="sadrzaj right-triangle heightfix">
                                                    <div class="text">
                                                        <h3 itemprop="name"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><?php echo $article_title; ?></a></h3>
                                                        <p><?php echo $article_text; ?></p>
                                                        <a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink btn dark"><?php echo $texts['READMORE']; ?></a>
                                                    </div>
                                                </div>
                                            </div>


                                     <?php
                                         $sl++; 
                                         }
                                        else 
                                          { ?>


                                            <div class="col-lg-6 col-md-6 col-sm-12 nopadding isotopeContent">
                                                <div class="sadrzaj left-triangle heightfix">
                                                    <div class="text">
                                                        <h3 itemprop="name"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><?php echo $article_title; ?></a></h3>
                                                        <p><?php echo $article_text; ?></p>
                                                        <a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink btn dark"><?php echo $texts['READMORE']; ?></a>
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="col-lg-6 col-md-6 col-sm-12 nopadding">
                                                <?php
                                                    if($result_article_file->execute() !== false && $db->last_row_count() == 1){
                                                        $row = $result_article_file->fetch(PDO::FETCH_ASSOC);

                                                        $file_id = $row['id'];
                                                        $filename = $row['file'];
                                                        $label = $row['label'];

                                                        $realpath = SYSBASE."medias/article/small/".$file_id."/".$filename;
                                                        $thumbpath = DOCBASE."medias/article/small/".$file_id."/".$filename;
                                                        $zoompath = DOCBASE."medias/article/big/".$file_id."/".$filename;

                                                    if(is_file($realpath)){ ?>
                                                    <figure class="heightfix more-link"><a itemprop="url" href="<?php echo $article_alias; ?>" class="moreLink"><img class="img-responsive" src="<?php echo $thumbpath; ?>" alt="<?php echo $label; ?>" /></a></figure>
                                                <?php }
                                                } ?>
                                            </div>


                                        <?php if($sl==3) 
                                         $sl++; 
                                          else 
                                            $sl=1; ?>

                                        </div>

                                </article>




                        <?php
                    }
                } ?>
            </div>

        </div>
        <?php
                }
            } ?>

关于PHP 循环 - 如何显示具有自己样式和 div 顺序的 2 个项目,然后显示下一个具有反向 div 顺序和类的 2 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42186862/

相关文章:

r - 如何计算数据框每一行的相同值的条目?

php - 如何使用 php 将我的 php 页面导出为 PDF?

php - 更改作为 php 文件的 jQuery 样式表

php - laravel 从数据库中获取数据

r - 如何查找列中的所有组合并计算数据中的出现次数

elasticsearch - Kibana:指望许多领域

php - 如何在android中使用sharedpreferences保存mysql数据表

php - Laravel 中的多个队列

php - MySQL:information_schema.columns 错误?

mysql - 将数据填充到具有 m :m Relationships 的表中