0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13

Описание для фотографии из галереи

03.08.2014, 02:28. Показов 3167. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, столкнулся с такой проблемой :
имеется галерея , просто отображаются картинки которые прикреплены к бд , и я хочу сделать так, чтобы при нажатие на любую картинку , меня перекидывало на адрес данной картинки где бы отображалась информация о ней ( разрешение, описание )
мне нужно прописать в ссылке для картинки GET-параметр указывающий на нужные строки в таблице, (в моем случаи это id фотографии), и сделать вывод по данному параметру ,чтобы выводилась сама картинка и ее данные , вот, но как это все сделать , как это хотя бы примерно должно выглядеть ? заранее спасибо)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.08.2014, 02:28
Ответы с готовыми решениями:

Скрытый опрос по фотографии. Анонимный комментарий для фотографии
Ребят такая проблема, не могу разобраться как сделать. задача такая есть детские фотографии пользователям нужно отгадать кто на ней...

Компонент Joomgallery - убрать слово "Описание:" из описания к фотографии
Доброго времени суток) Такой вопрос - как убрать слово "Описание:" из описания к фотографии? Скрин прилагается.

Где пишется описание для выходного файла .exe (например описание процесса)
Консольный проект, скомпилировали, получили exe. Жмем правой кнопкой на нем\свойства\вкладка подробно, почти все описание exe файла...

25
15 / 15 / 8
Регистрация: 29.07.2014
Сообщений: 120
04.08.2014, 10:00
Что тут сложного?
Самый простой вариант:
PHP
1
2
3
4
5
6
7
8
$id = $_GET['id'];
/* description - описание картинки, pimage - путь по которому она загружена */
$query = mysql_query("SELECT description, pimage FROM images WHERE id = $id");
$row = mysql_fetch_assoc($query);
$path_to_image = $_SERVER['DOCUMENT_ROOT'].$row['pimage'];
$description = $row['description'];
.....
echo "Картинка:<br/><img src='$path_to_image'/><br/>Описание:$description";
В зависимости от положения звезд Ваших потребностей в данный момент, код выше может быть приемлем, а может и нет. Скорее всего, даже свой код вы еще 10 раз отрефакторите и будете свои предыдущие решения вспоминать как страшный сон. В любом случае, элементарные замечания и примечания к этому коду:
1) $_GET['id'] неплохо было бы отфильтровать, да вообще проверить параметр на существование.
2) mysql лучше не использовать ибо deprecated. Запрос протестировать на SQL инъекции.
Еще логичнее PDO/DBAL/ORM фреймворки задействовать.
3) Даже echo тоже вариант так себе. Корректнее данные через шаблонизатор выводить.
Т.е. опять-таки возвращаемся к теме готовых типовых решений, библиотек классов, фреймворков, API CMS и управления зависимостями (гуглим PECL, PEAR, Composer, Packagist и т.п.)
4) Метаданные изображения можно вытащить Exif функциями PHP.
5) А если предстоит высокая нагрузка, продумываем архитектуру заранее. Знакомимся с NGINX, memcached, nosql, Cloud Scalable Hosting (jelastic и т.п.). Ссылки 1, 2, 3 - хороший старт по архитектуре нагруженных многозвенных систем и оптимизациям PHP.
1
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 16:01  [ТС]
я сразу говорю, что я только начал изучать php
получилось что-то такое :
в файле index.php сделал так
PHP/HTML
1
2
<a href=show_picture_info.php?id=$id><img class="front" src="<?=SITE . $dir . $path_to_image . $image['img']?>" alt=""
          WIDTH="294px" HEIGHT="184px"></a>
создал отдельный файл show_picture_info.php и в нем
PHP
1
2
3
4
5
6
7
8
<?php
global $db;
$id = $_GET['id'];
$query = mysql_query("SELECT description, pimage FROM images WHERE id = $id");
$row = mysql_fetch_assoc($db, $query);
$path_to_image = $_SERVER['DOCUMENT_ROOT'].$row['pimage'];
$description = $row['description'];
?>
но не работает , при нажатие на картинку получаю -
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in Z:\home\localhost\www\gallery\show_pictu re_info.php on line 5

и еще на счет "primage" , это должен быть отдельный столбец в таблице , где будут прописаны пути к фотографиям?
например
images/car/big/1.jpg
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 16:06
Цитата Сообщение от Qvernaut Посмотреть сообщение
global $db;
так не получится. Файл с подключением к БД необходимо подключить через include/requre.
Цитата Сообщение от Qvernaut Посмотреть сообщение
и еще на счет "primage" , это должен быть отдельный столбец
да
1
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 16:30  [ТС]
исправил на
PHP
1
2
3
4
5
6
7
8
9
<?php
 $db = mysql_connect ("localhost","root","");
    mysql_select_db ("gallery",$db);
$id = $_GET['id'];
$query = mysql_query("SELECT description, pimage FROM images WHERE id = $id");
$row = mysql_fetch_assoc($query);
$path_to_image = $_SERVER['DOCUMENT_ROOT'].$row['pimage'];
$description = $row['description'];
?>
но все равно
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\gallery\show_pictu re_info.php on line 7
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 16:43
PHP
1
2
$query = mysql_query("SELECT description, pimage FROM images WHERE id = $id");
$query || die(mysql_error());
что выводит?
1
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 16:46  [ТС]
Unknown column '$id' in 'where clause'
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 16:48
А так?
PHP
1
2
$query = mysql_query('SELECT `description`, `pimage` FROM `images` WHERE `id` = ' . (int) $id);
$query || die(mysql_error());
Добавлено через 24 секунды
вы уверены, что у вас двойные кавычки там, а не одинарные?
0
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 16:50  [ТС]
а так белый экран, без ошибок)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 16:53
после этих строчек добавьте
PHP
1
var_dump($query);
Если там будет нечто наподобие Resource #res... значит все в порядке, пишите код дальше
1
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 16:54  [ТС]
Спасибо большое, но видимо где-то в самой ссылке ошибка, раз он не хочет картинку выводить
HTML5
1
2
<a href=show_picture_info.php?id=$id><img class="front" src="<?=SITE . $dir . $path_to_image . $image['img']?>" alt=""
          WIDTH="294px" HEIGHT="184px"></a>
вставил , выдал -
resource(4) of type (mysql result)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 17:01
ресурс необходимо обработать с помощью mysql_fetch_assoc или других аналогичных
1
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 17:14  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 $db = mysql_connect ("localhost","root","");
    mysql_select_db ("gallery",$db);
$id = $_GET['id'];
$query = mysql_query('SELECT `description`, `pimage` FROM `images` WHERE `id` = ' . (int) $id);
$row = mysql_fetch_assoc($query);
var_dump($query);
 
$query || die(mysql_error());
$path_to_image = $_SERVER['DOCUMENT_ROOT'].$row['pimage'];
$description = $row['description'];
?>
я добавил $row = mysql_fetch_assoc($query);
но все осталось по-прежнему :с
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 17:19
Цитата Сообщение от Qvernaut Посмотреть сообщение
$image['img']
$row['pimage']
0
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 17:30  [ТС]
HTML5
1
2
<a href=show_picture_info.php?id=$id><img class="front" src="<?=SITE . $dir . $path_to_image . $image['img'] . $row['pimage']?>" alt=""
 WIDTH="294px" HEIGHT="184px"></a>
ничего не поменялось, а $image['img'] отображает картинку в самой галерее
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.08.2014, 17:34
PHP
1
<?php var_dump(SITE . $dir . $path_to_image . $image['img'] . $row['pimage']); ?>
что выводит?
1
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 17:39  [ТС]
string(51)
"http://localhost/gallery/images/car/small/00016.jpg"

string(51)
"http://localhost/gallery/images/car/small/00015.jpg"
под каждой картинкой свой путь
0
15 / 15 / 8
Регистрация: 29.07.2014
Сообщений: 120
04.08.2014, 18:17
PHP
1
2
<a href=show_picture_info.php?id=$id><img class="front" src="<?=SITE . $dir . $path_to_image . $image['img'] . $row['pimage']?>" alt=""
 WIDTH="294px" HEIGHT="184px"></a>
Вы вот тут $dir . $path выводите с помощью <?= ... ?>, а $id почему-то нет.
0
0 / 0 / 0
Регистрация: 03.08.2014
Сообщений: 13
04.08.2014, 18:28  [ТС]
HTML5
1
2
<a href=show_picture_info.php?id=$id><img class="front" src="<?=SITE . $dir . $path_to_image . $image['img'] . $row['pimage'] . $id?>" alt=""
          WIDTH="294px" HEIGHT="184px"></a>
сделал вывод $id , но это ни на что не повлияло
0
15 / 15 / 8
Регистрация: 29.07.2014
Сообщений: 120
04.08.2014, 19:16
Кликните здесь для просмотра всего текста
сделал вывод $id , но это ни на что не повлияло
Ну почему не повлияло.
/show_picture_info.php уже стал нормальный id получать...
Проблема с перечислением картинок, да?

в $query LIMIT закладываете, чтобы несколько картинок вывести
PHP
1
2
3
4
5
6
// допустим в gallery php вы выбираете картинки из базы
$page = $_GET['page'];
if ($page<=0) {$page=1;};
$from_page = $articles * ($page - 1);
// чтобы вывести 10 картинок с описаниями
// в SQL запрос добавляете LIMIT $from_page, 10
Т.е. у вас получится постраничный вывод галереи
Ну и собственно все:
PHP
1
2
3
4
while($row = mysql_fetch_assoc($result)) 
{
// выводите ссылки и миниатюрки
}
А в /show_picture_info.php все подробности по id обычным запросом, лишь бы ссылка верная была.
Эта задача кажется простой. Сейчас вы начнете мучиться с разделителями страниц для пролистывания галереи, pagination писать начнете.
а mysql_fetch_assoc временно допустимое решение.

Вы бы код полностью свой показали, что у Вас по галерее получилось.
По разрозненным фрагментам сложно сориентироваться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2014, 19:16
Помогаю со студенческими работами здесь

Маска для галереи
Хай )) Кто знает или делал подобные вещи - нужно сделать галерею, вся сложность заключается в следующем, что бы картинка показывалась в...

Скрипт для галереи
есть ли у кого нибудь скрипт на галерею, чтоб были превью окошки слева небольшие со стрелками вперед назад (и где нибудь в контейнере...

Превью для галереи
В общем сделал небольшую галерею с mysql и админпанель. В админке и создаються альбомы а также грузяться фото в выбраный альбом. Также при...

Модуль галереи для Joomla 2.5
Добрый вечер. http://www.eurasia-hotel.ru/-внизу данного сайта есть галерея-карусель с эффектом подцвечивания изображения и перехода по...

Модуль для галереи joomla 3.0
Здраствуйте! Кто-нибудь знает где можно качнуть бесплатно модуль галереи для joomla третьей версии?:) Буду премного благодарен:)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru