Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Вывод картинок


Автор: Sufius 10.8.2005, 12:50
Хм... немного не соображаю...
Есть БД с id | alt | url

Надо вывести в такую таблицу случайные картинки

<table width="400">
<tr>
<td>сюда</td>
<td>сюда</td>
<td>сюда</td>
<td>сюда</td>
</tr>
<tr><td>какой-то текст</td></tr>
<tr>
<td>сюда</td>
<td>сюда</td>
<td>сюда</td>
<td>сюда</td>
</tr>
</table>

Вывожу как select * from table order by rand() limit 8
Это ясно...
А как теперь это всё вставить в необходимые места?

Автор: Song 10.8.2005, 13:55
последовательно наращивая строку..

Автор: satan 10.8.2005, 14:01
Я сторонник использования шаблонизаторов. Я бы использовал бы Smarty для таких вещей.

Автор: Sufius 10.8.2005, 14:14
2 satan
Где об этом более подробно почитать?

Автор: Рыжий 10.8.2005, 15:04
Sufius
Вот здесь довольно много информации smile
http://smarty.php.net/manual/ru/index.php
Удачи!

Автор: Sufius 10.8.2005, 15:55
Ё-моё... smile
А работать-то когда, если всё это прочитать ;)

Автор: Wanderer2019 10.8.2005, 15:59
подключаешься к БД...
передаешь ей твой запрос...
запрос возвращает таблицу данных...
ты ее считываешь построчно в определенном цикле... (это уж как нравится)...
и каждый раз записываешь в таблицу...

или може я не так вопрос понял???

а в шаблонизаторах типа smarty я ваще никакого смысла не вижу честно говоря...

Автор: Mal Hack 10.8.2005, 16:04
Sufius альтернатива смарти. Лично я его не люблю.
Пример:
Код
$res = mysql_query( "SELECT `*` FROM `test_table`" ) ;
while( $row = mysql_fetch_array( $res ) )
 {  print output( $row );  }
 
function row( $arr )
 {
  return <<<EOF
<tr>
<td>{$arr['id']}</td>
<td>{$arr['alt']}</td>
<td>{$arr['url']}</td>
</tr>
EOF;
 }



Лично я такой конструкций давно пользуюсь. В этом форуме также.

Автор: satan 11.8.2005, 11:09
Цитата(Wanderer2019 @ 10.8.2005, 15:59)

а в шаблонизаторах типа smarty я ваще никакого смысла не вижу честно говоря...

Смысл в упрощении жизни программиста и разделения кода и html.

Код

$smarty = new Smarty;
$db = new Db;
$db->query("select * from images where 1");
while($data = $db->next_record);
$smarty->assign("data",$data);
$smarty->display("{$this->path}templates/img.tpl")


файл img.tpl
Код

<html>
<body>
  <table>
    <tr>
    {foreach from=$data item=d}
      <td><img src="{$d.path}"><br>{$d.name}</td>
    {/foreach}
     </tr>
  </table>
</body>
</html>


Вот условно такой код. гораздо удобней всяких извращений и можно немного усложнить и получится то что хотел Sufius.

PS. Код конечно упрощенный и не рассчитан на большое количество картинок, просто не удобно в форуме писать smile

Автор: Wanderer2019 11.8.2005, 11:59
Цитата(satan @ 11.8.2005, 11:09)
Смысл в упрощении жизни программиста и разделения кода и html.

Можно ведь сделать то же самое без шаблонов!
и без смешивания кода...
пишем типа программный файл на PHP...-> engine.php
Вызываем его в show.php и берем оттуда набор картинок (массив = URL, подпись и все такое)
в show.php пишем:
Код

...
<?php
foreach(...){
echo "<td>PIC</td>";//тут уж дело техники как массив прочитать в хтмл теги
}
?>
...


=
аналогично:
Цитата(satan @ 11.8.2005, 11:09)
<html>
<body>
  <table>
    <tr>
    {foreach from=$data item=d}
      <td><img src="{$d.path}"><br>{$d.name}</td>
    {/foreach}
    </tr>
  </table>
</body>
</html>


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)