Я пытаюсь отобразить изображения из базы данных 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
?>
$rowcounter+3;
вообще ничего не делает. - person Anirudh Ramanathan   schedule 25.11.2012