在x个数据条目之后放置广告

时间:2017-08-17 14:18:05

标签: php

如果我的数据库查询返回超过13个结果,我想在条目4和12之后放置一个广告。如果结果小于13,我想在6处放置一个广告。

我该怎么做?

获取数据库结果的代码

@foreach($batsmen as $bat)

<h2>$bat->name<h2>
<p> $bat->age<p>
<p> $bat->team<p>

@endforeach

3 个答案:

答案 0 :(得分:0)

您可以使用简单的if条件并使用foreach的索引来解决它:

@foreach($batsmen as $i => $bat)
  <h2>$bat->name<h2>
  <p> $bat->age<p>
  <p> $bat->team<p>
  @if((count($batsmen)<13)
   @if($i == 5)
     <p>
     Advert
     </p>
   @endif
  @else
    @if($i == 3 || $i == 11)
     <p>
     Advert
     </p>
    @endif
  @endif
@endforeach

请记住,索引从0开始。

答案 1 :(得分:0)

第一个也是最简单的解决方案是我想到的。

$i=1;
@foreach($batsmen as $bat)

<h2>$bat->name<h2>
<p> $bat->age<p>
<p> $bat->team<p>
<?php
if($i==4 && count($batsmen>12))
{
    replace_ad();
}
if($i==6 && count($batsmen<12))
{
    replace_ad();
}
if($i==12)
{
    replace_ad();
}
$i++;?>
@endforeach

答案 2 :(得分:0)

尝试使用模数。

运行一个计数器并取模数,当它为第12个记录的0时,它将显示广告

$i=0;
foreach($batsmen as $bat){
  <h2>$bat->name<h2>
  <p> $bat->age<p>
  <p> $bat->team<p>
   if($i % 12 == 0)
      echo 'ad'.$I;
    $i++;
}

PS:我不熟悉这种编码风格,所以只需要采用模数的概念。希望它是heöps