2011-11-01 123 views
3

私には、混乱していることがあります。 次のコードは、Webページで空白行を生成しています。私は別のページで同じコードを使用しており、うまく動作しています。行数は5行を表示するように設定されていますが、6行が表示され、最初の行には動的データがありません。 私は何かを見逃したり見過ごしたりしていると確信しています。なぜこれが起こっているのか誰にも分かりませんか?あなたはループを介して第2の時間に行くまで 乾杯PHP Whileループを空白の行を繰り返し領域に追加する

<?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 
?> 
+3

doをしばらく変更してください。 – deviousdodo

+0

ヘッダー行の前に行がありますか? thタグ? – bozdoz

+0

はい、ヘッダーは別の行にあります。使用しているコードは、サイト内の他のページで正常に動作しています。問題がどこにあるのか分かりません。私は作業ページのコードをこれと比較しましたが、違いはありません – Spud

答えて

4

$行が移入されません。

代わりの

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

行います

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

それは大丈夫でした!私はまだ同じコードが他のページで「働いている」のはなぜか困惑していますが、私はPHPの知識と経験が不足しているので、それをチョークします。これに助けてくれてありがとう。よかったよ、乾杯。 – Spud

+0

ループが何をしているかに応じて、どちらのループでも出力が同じように見えます。 – Jaime

1

問題がdo-whileでしばらく-句の式が最初の実行で実行されていないということです。その結果、$row配列が設定されていないため、印刷する値は含まれません。

コードは、このように変更する必要があります。

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

} 

はここで行う-ながら、どのように作品を説明するための例です:

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

出力:

0 
1 
2 
3 

のに対し標準whileループは次のように出力します:

1 
2 
3 
+0

ありがとうございます、修正が行われました。私はそれを非常に新しくして、それを使って達成できるものに魅了されましたが、私は自分の知識と訓練が不足していると私は混乱しているようです。助けてくれてありがとう。 – Spud

関連する問題