PHP while循环向重复区域添加空行

时间:2011-11-01 21:19:16

标签: php html

对我来说,这是一个令人困惑的情况。 以下代码在网页上生成一个空行。我在不同的页面上使用相同的代码,它们工作正常。行计数设置为显示5行,但显示6行,第一行没有任何动态数据。 我敢肯定我错过了或忽视了什么,有人能说清楚为什么会发生这种情况吗? 干杯

    <?php
$counter = 0;
do {
$color = ($counter & 1)? "#FFF" : "#DEDEDE";
$counter++
?>
      <tr style="background: <?php print $color; ?>">
        <td ><a href="edit_workorder.php?jobID=<?php echo $row['jobID']; ?>" ><?php echo $row['wo_date']; ?></a></td>
        <td />
        <td ><?php echo $row['wcust_firstname']; ?> <?php echo $row['wcust_surname']; ?></td>
        <td ><?php echo $row['wcust_address']; ?> - <?php echo $row['wcust_suburb']; ?></td>
        <td ><?php echo $row['wo_equip']; ?></td>
        <td />
        <td ><?php echo $row['wo_problem']; ?></td>
        <td />
        <td ><?php echo $row['wtech_userlogin']; ?></td>
      </tr>
      <?php
} while($row = mysql_fetch_array($sql2))
 // close while loop
?>

2 个答案:

答案 0 :(得分:4)

在第二次循环之前,不会填充$ row。

而不是

do{
 ...
}while($row = mysql_fetch_array($sql2))

做的:

while($row = mysql_fetch_array($sql2)){
...
}

答案 1 :(得分:1)

问题在于,使用do-while,while子句中的表达式不会在第一次运行中执行。这样做的结果是$row数组未设置,因此不包含任何要打印的值。

代码应该修改为:

while($row = mysql_fetch_array($sql2)){

}

以下是一个说明do-while如何运作的示例:

$i = 0;
do {
   echo $i;
}while($i++ < 3);

输出:

0
1
2
3

而标准的while循环将输出:

1
2
3