在迭代的每个范围内获得不同结果的问题

时间:2015-09-09 15:17:16

标签: php mysql loops while-loop

我有一个名为'products'的mysql表。 我正在尝试获取我网站上的所有表格记录,按页面划分。

每个页面都包含一个简单的CSS类。 p1,p2,p3,p4等

我做一个简单的while循环。

      while (...)) { ?>

         <p class="p1"><?php echo $row['product'] // etc ?> </p>

      <?php }

这很好用,但所有记录都有“p1”类。

我的目标是为每个页面提供3个产品,例如:

<p class="p1">1</p>
<p class="p1">2</p>
<p class="p1">3</p>

<p class="p2">4</p>
<p class="p2">5</p>
<p class="p2">6</p>

<p class="p3">7</p>
<p class="p3">8</p>
<p class="p3">9</p>

etc

我试过这个代码只能解决我稍后会解释的问题

$i = 0;
$class = 1;

while (...) {

   $i++;
   if ($i % 3 ) {

        $class++;

   } ?>

  <p class="p<?php echo $class ?>">1</p>

<?php }

这段代码有效,但不幸的是我总是得到p1有2条记录和p2,p3,p4,p5 ecc有3条记录。

结果

<p class="p1">1</p>
<p class="p1">2</p>

<p class="p2">3</p>
<p class="p2">4</p>
<p class="p2">5</p>

<p class="p3">6</p>
<p class="p3">7</p>
<p class="p3">8</p>

我无法弄清楚如何解决这个问题。 提前致谢

1 个答案:

答案 0 :(得分:0)

您的代码有一个小错误。当$class为1时,$i为1,当$i为3时,$class变量会递增并变为2.尝试更改if条件以包含{$i的大小写1}}为0,这样你就可以获得前三个对象,使其成为1 例如,

$i=0;
if($i != 0 && i%3==0) {
        $class++;
    }