вывод по 3 картинки в ряд

dimnast

Guest
вывод по 3 картинки в ряд

Есть таблица с такими полями: id - номер картинки, pname - название+путь к папке, где картинка лежит.
Необходимо выводить по 3 картинки в ряд:
<tr>
<td>картинка 1</td>
<td>картинка 2</td>
<td>картинка 3</td></tr>
Вроде все легко, если 3 картинки, а вот для 4-х или 2-х...
Из БД мы получаем $result=mysql_fetch_arrey($sql))
и количество строк $numrows.
Помогите организовать цикл вывода!!
 

kvf77

Red Devil
dimnast

Введи счетчик, который будет считать выведенные картинки, как тока он равен 3 обнуляй его а в браузер выводи
</tr><tr>
 

Tor

Новичок
как тока он равен 3 обнуляй
правильнее проверять делимость на 3 без остатка

но автору нужно другой
а вот что ему нужно - здесь ясности пока нет
 

kvf77

Red Devil
Tor

ну да - я сначала хотел так и написать - но подумал, что для него может оказаться сложно.
 

dimnast

Guest
Tor

Я получаю количество строк из таблицы - количество картинок.
если делится на 3 без остатка, то что?
 

m2k

Новичок
$i = 0;
while($row = mysql_fetch_assoc($r))
{
if($i++ % 3 == 0)
print "</tr><tr>";
print "<td><img src=...></td>";
}
чтото типа того
 

SelenIT

IT-лунатик :)
Если я понял - беспокоит проблема пустых ячеек в конце.
Как вариант: цикл до (ceil($numrows/3)*3). Если есть очередная запись в базе - выводить ячейку с картинкой, если уже нет - выводить пустую ячейку. Если счетчик кратен трем - выводить </tr><tr>, как уже говорилось.
 

SelenIT

IT-лунатик :)
PHP:
<?
// делаем запрос к базе, получаем $numrows
?><table><tr><?
for ($i=0,$lim = ceil($numrows/3)*3; $i<$lim; $i++) {
   if ($i && !($i%3)) {
      ?>
   </tr><tr>
<? }
   if ($row = mysql_fetch_assoc($r) and $row['img_path']) {
      ?>
      <td><img src="<? echo $row['img_path']; ?>"></td>
<? }
   else {
      ?>
      <td>&nbsp;</td>
<? }
}
?></tr></table>
(исправлено, спасибо dnes за багрепорт)
 
Сверху