Опитвам се да покажа изображения от 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='/bg".$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='/bg".$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