Компьютеры
и программирование

Галереи для сайта с подписями к изображениям

Как организовать галереи для сайта - этот вопрос рано или поздно возникает перед любым начинающим и, тем более, опытным программистом. Вариантов решений много. Бывает, что нужно сделать галерею, чтобы к открывающимся большим изображениям выводились подписи. Дефицит решений этой конкретной задачи должна восполнить эта статья о том, как сделать простую галерею на PHP. Одно может быть воспринято как неудобство: поскольку это решение на php, для показа увеличенной картинки страница будет перезагружаться.

Пусть с одной стороны страницы, допустим, справа, находится таблица из всех фотографий уменьшенного размера, а слева показывается эта фотография увеличенного размера с подписью, если нажать на маленькую фотографию справа. Сначала создаём в базе данных таблицу gallery:

Код MySQL

CREATE TABLE IF NOT EXISTS `gallery` ( `gid` int(10) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `pic` varchar(255) NOT NULL, PRIMARY KEY (`gid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Следующий код выводит в правой части страницы таблицу из всех уменьшенных фотографий галереи. Он содержит и ссылку на открытие фотографии увеличенного размера. А чтобы страница после перезагрузки открылась на нужной высоте, её адрес в ссылке включает в себя метку #paragraph. Она же должна быть проставлена в том месте страницы, где начинается галерея.

Код PHP

<?php echo '<div class="gallery_right">'; $result1=mysql_query("select * FROM gallery") or die (mysql_error()); $myrow1 = mysql_fetch_array($result1); do { echo '<div class="gallery_image"><a href="'.$PHP_SELF.'?id='.$id.'&gid='.$myrow1[gid].'&page='.$page.'#paragraph"><img src="admin/temp/'.$myrow1[pic].'" /></a></div>'; } while ($myrow1 = mysql_fetch_array($result1)); echo '</div>'; //end gallery right ?>

А вот код, который выводит в левой части страницы одну увеличенную фотографию с подписью, при нажатии на маленькую фотографию:

Код PHP

<?php $result2=mysql_query("select * FROM gallery WHERE gid='$gid'") or die (mysql_error()); $myrow2 = mysql_fetch_array($result2); do { echo '<div class="gallery_left"> <div class="gallery_big_img"> <img name="mainpic" src="admin/temp/'.$myrow2[pic].'" /> </div> <div class="gallery_text">'.$myrow2[name].'</div>'; } while($myrow2 = mysql_fetch_array($result2)); echo '</div>'; //end gallery left ?>

Может, слишком просто, но основа закладывается именно такая. Если хотите, можете усовершенствовать.

Возможно, вы хотите применить более сложные условия для выборки названий картинок из базы данных. Тогда Вам поможет материал "Реляционная алгебра".

Поделиться с друзьями