我試圖從一個表中的MySQL數據庫顯示圖像,三行到一行。我能夠做到這一點,但問題是我的原始代碼有它,所以如果你的MySQL表中只有一行,它會每行運行三次代碼,並留下兩個空的<td>
(並留下一個空一個,如果你有兩排)。我試圖運行一個循環,表示如果剩餘的行少於三行,請多次運行循環並退出。我一遍又一遍地查看了這段代碼,並將它交給了自己,但似乎無法找到問題所在。我得到的錯誤是無限地運行循環。我目前有兩行,因此它所做的是每<tr>
運行循環兩次,但永遠。儘管循環語法錯誤(無限循環)
我認爲添加3到$ rowcounter會停止循環。 $ rowcounter從0開始,循環遍歷。 3被添加到$ rowcounter(使其爲3),這會使其大於$ num_rows_temp(這將是兩個,因爲只有兩行),並且循環將不會執行。同樣,問題必須在第一個while循環中,因爲它會無限地在我的表中生成新的行......是否有$ rowcounter不會添加3的原因?
(另外,請忽略fetch_arrays下的變量聲明。這些將要使用的功能,一旦我得到的循環工作。他們現在看起來輕浮,雖然...)
有人可以幫我弄清楚我在這裏有什麼問題?非常感謝。
<?php
$rowcounter=0;
if($num_rows_temp==0){
echo "No pictures yet!";
}
else{
//BEGIN JOB POSTING
while($rowcounter<=$num_rows_temp){
$remaining=$num_rows_temp-$rowcounter;
$counter=1;
echo "<tr>";
//IF THE REMAINING AMOUNT OF ROWS IS LESS THAN THREE, RUN THE WHILE LOOP
//FOR THE AMOUNT OF REMAINING ROWS
if ($remaining>0 && $remaining<3){
while($counter<=$remaining){
$row_temp = mysqli_fetch_array($result_temp, MYSQL_NUM);
$id = $row_temp[0];
$location = $row_temp[1];
$name = $row_temp[2];
$email = $row_temp[3];
echo "<td>
<a href='".$location."'>
<img class=\"g-thumbnail\" src='".$location."' width=\"200\" height=\"200\" />
</a>
</td>";
$counter++;
} //END WHILE
} //END IF
else{
while($counter<=3){
$row_temp = mysqli_fetch_array($result_temp, MYSQL_NUM);
$id = $row_temp[0];
$location = $row_temp[1];
$name = $row_temp[2];
$email = $row_temp[3];
echo "<td>
<a href='".$location."'>
<img class=\"g-thumbnail\" src='".$location."' width=\"200\" height=\"200\" />
</a>
</td>";
$counter++;
} //END WHILE
} //END ELSE
echo "</tr>";
$rowcounter+3;
} //END WHILE
} //END ELSE
?>
您不是*將* 3添加到那裏的rowcounter,您將它設置爲3.嘗試執行「$ rowcounter + = 3;」代替。 – FreudianSlip
@FreudianSlip不會將它設置爲3。 '$ rowcounter + 3;'什麼都不做。 –