-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Bullet-Avalon |
27-09-2009 10:25 1228487 |
Помогите с версткой
Вот дело в следующем, имеется БД с ссылками на изображения, хочу чтобы на странице сайта было чтото врде фотоальбома, чтобы скриптик вытаскивал из бд изображения и выстраивал их как на след скрине

Во всем вроде разобрался, но не пойму что нужно написать в цикле
Do
{ printf("...")}
while ();
Чтобы именно в КАЖДОЙ СТРОКЕ БЫЛО ОПРЕДЕЛЕННОЕ кол-во картинок - например 3.
Подскажите....
|
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 |
Блин чето не врублюсь с этим кодом, как его связать с БД, точнее какие строки в бд нужны и куда их выводить....
|
Куда выводить:
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 - ссылка на картинку
Вот хотел бы у вас спросить правильно ли составлен код?
|
Неправильно.
Код:
$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.
© OSzone.net 2001-