在PHP的while循环中,在偶数和奇数之间交替

问题描述

| 大家好, 一直在处理几行代码,但我似乎无法使其正常工作。基本上,我想通过while循环在偶数和奇数表样式之间进行切换。我究竟做错了什么? 似乎每次都只循环遍历if()。 谢谢!
<?PHP
    include \'connect.PHP\';
    echo \"<table id=\'hor-zebra\'>\";
    $i = 0;
    while($row = MysqL_fetch_array($result))
    {
       if(i%2 == 0)
       {
          echo \"<tr class=\'even\'>\";
          echo \"<td>\" . $row[\'departure\'] .\" ✈ \". $row[\'destination\'] . \"</td>\";
          echo \"</tr>\";
       }

       else
       {
          echo \"<tr>\";
          echo \"<td>\" . $row[\'departure\'] .\" ✈ \". $row[\'destination\'] . \"</td>\";
          echo \"</tr>\";
       }
       $i++;
    }
    echo \"</table>\";

    MysqL_close($con);

  ?>
    

解决方法

您的
if
状况有错字。它应该是:
   if($i%2 == 0)
您还可以通过仅将类名称分配给if和else块中的变量来节省一些击键:
   if($i%2 == 0)
   {
      $class = \'even\';
   }
   else
   {
      $class = \'odd\';
   }

   echo \"<tr class=\'$class\'>\";
   echo \"<td>\" . $row[\'departure\'] .\" ✈ \". $row[\'destination\'] . \"</td>\";
   echo \"</tr>\";
    ,您还可以使用css .nth-child属性
   tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}
按照W3示例     ,CSS-Tricks发布了一个非常优雅的解决方案。 它看起来像超级还原主义者的C ++魔术。本质上,他们这样做:
<div class=\"example-class<?php echo ($xyz++%2); ?>\">
这适用于任何循环:for,foreach和while。 修改整数会为您提供更大的步长,即3之后重设,4之后重设,依此类推。 CSS-技巧最终解决方案     ,您忘记了\'$ \'
 if(i%2 == 0)
应该
 if(($i % 2) == 0)
    ,替换此行...
if(i%2 == 0)
...具有以下内容:
if($i % 2 == 0)
    ,这可以进一步改善。
foreach($post_array as $array => $row) {
    $class = ($array %2 == 0) ? \'even\' : \'odd\';
    echo \'
    <tr class=\"\'.$class.\'\">
        <td>\' .$row[\'title\']. \'</td>
        <td>\' .$row[\'content\']. \'</td>
        <td>\' .$row[\'catid\']. \'</td>
        <td>\' .$row[\'id\']. \'</td>
        <td>\' . \'<form action=\"edit.php?id=\'.$row[\'id\'].\'\" method=\"post\">
            <input type=\"hidden\" name=\"id\" id=\"id\" value=\"\'.$row[\'id\'].\'\" />
            <input type=\"submit\" name=\"edit\" value=\"Edit\" />
        </form>\' . \'</td>
        <td>\' . \'<form action=\"\" method=\"post\">
            <input type=\"hidden\" name=\"id\" id=\"id\" value=\"\'.$row[\'id\'].\'\" />
            <input type=\"submit\" name=\"delete\" value=\"Delete\" />
        </form>\' . \'</td>
    </tr>\';
}