我需要以相反的顺序和不同的 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
}
} ?>
最佳答案
声明$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/