对我来说,这是一个令人困惑的情况。 以下代码在网页上生成一个空行。我在不同的页面上使用相同的代码,它们工作正常。行计数设置为显示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
?>
答案 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