Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Помогите с версткой (http://forum.oszone.net/showthread.php?t=151597)

Bullet-Avalon 27-09-2009 10:25 1228487

Помогите с версткой
 
Вот дело в следующем, имеется БД с ссылками на изображения, хочу чтобы на странице сайта было чтото врде фотоальбома, чтобы скриптик вытаскивал из бд изображения и выстраивал их как на след скрине

Во всем вроде разобрался, но не пойму что нужно написать в цикле
Do
{ printf("...")}
while ();
Чтобы именно в КАЖДОЙ СТРОКЕ БЫЛО ОПРЕДЕЛЕННОЕ кол-во картинок - например 3.
Подскажите....

Coutty 27-09-2009 11:01 1228503

PHP код:

$td_in_tr 3// количество ячеек в строке
for ($i 0$i $num_of_images$i++)
  {
  if (
$i $td_in_tr == 0) echo "<tr><td><img ... ></td>"// если номер текущей картинки делится на 3 без остатка, начинаем новую строку
  
else if ($i $td_in_tr == ($td_in_tr 1)) echo "<td><img ... ></td></tr>"// если остаток = 2, то строку заканчиваем
  
else echo "<td><img ... ></td>"// иначе просто внутренняя ячейка
  


И ещё можно добавить некоторое количество пустых ячеек (или какую-нибудь проверку) на тот случай, если картинок не хватает на заполнение всех строк полностью.

Bullet-Avalon 27-09-2009 11:04 1228507

Coutty, Спасибо, ща попробуем.....

Bullet-Avalon 27-09-2009 11:36 1228519

Блин чето не врублюсь с этим кодом, как его связать с БД, точнее какие строки в бд нужны и куда их выводить....

Coutty 27-09-2009 12:12 1228532

Куда выводить:
PHP код:

$td_in_tr 3// количество ячеек в строке 
for ($i 0$i $num_of_images$i++) 
  { 
  
$res mysql_fetch_assoc($result); // $result - результат sql-запроса ($result = mysql_query("SELECT * FROM..."))
  
if ($i $td_in_tr == 0) echo "<tr><td><img src='" $res['path'] . "' /></td>"// если номер текущей картинки делится на 3 без остатка, начинаем новую строку 
  
else if ($i $td_in_tr == ($td_in_tr 1)) echo "<td><img src='" $res['path'] . "' /></td></tr>"// если остаток = 2, то строку заканчиваем 
  
else echo "<td><img src='" $res['path'] . "' /></td>"// иначе просто внутренняя ячейка 
  


А уж какие строки нужны - это вам должно быть виднее.

Bullet-Avalon 27-09-2009 12:14 1228534

Coutty, аа понятно, спс еще раз, щас будим разбираться....

Bullet-Avalon 28-09-2009 09:46 1229235

Coutty, хотел попросит вас, если не сложно, вот вроде я подогнал свой код:
PHP код:

<table> 
<?php
$result
=mysql_query("SELECT Name,id,link FROM images"); 
$myrow mysql_fetch_array($result);
$td_in_tr 3// количество ячеек в строке 
$num_of_images=$myrow['id']; 
 for (
$i 0$i $num_of_images$i++)    
{      
 if (
$i $td_in_tr == 0) echo "<tr><td><img src='" $myrow['link'] . "' /></td>"// если номер текущей картинки делится на 3 без остатка, начинаем новую строку   
 
else if ($i $td_in_tr == ($td_in_tr 1)) echo "<td><img src='" $myrow['link'] . "' /></td></tr>"// если остаток = 2, то строку заканчиваем    
else echo "<td><img src='" $myrow['link'] . "' /></td>"// иначе просто внутренняя ячейка    
}   
?> 
</table>

Тоесть здесь я вывожу ячейки в таблицу, выбираю из БД поля
Name - имя картинки,
id - которое в последствии приравниваю к $num_of_images,
Link - ссылка на картинку
Вот хотел бы у вас спросить правильно ли составлен код?

Coutty 28-09-2009 18:30 1229599

Неправильно.
Код:

$myrow = mysql_fetch_array($result);
Эта строка кода говорит: поместить в массив $myrow следующую строку из SQL-выборки. Но строк-то выбирается много, а вы вызываете только 1 раз. Надо поместить данную строку внутрь цикла, чтобы она вызывалась каждый раз.
Код:

$num_of_images=$myrow['id'];
Это и вовсе непонятно что такое. Для определения количества строк используется функция:
$num_of_images = mysql_num_rows($result);

Bullet-Avalon 28-09-2009 20:43 1229693

ОК, спасибо, будим пробовать :)


Время: 21:29.

Время: 21:29.
© OSzone.net 2001-