Галерея для сайта. Урок 6. БД

Галерея для сайта

От автора: в этом уроке мы начнем изменять код галереи для того, чтобы она использовала в своей работе базу данных. С БД галерея станет более функциональной, в частности, в БД мы можем хранить короткие описания к каждой картинке, которые выводятся на обратной стороне картинки. Итак, давайте начнем.

скачать исходникискачать урок

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

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Далее нужно заполнить таблицу данными. В дополнительных материалах вы найдете файл дампа images.sql, который создаст нужную таблицу с данными.

Идем далее. Поскольку в БД у нас есть поле с номером галереи картинки, следовательно, мы должны в приложении как-то получать номер запрошенной галереи и показывать именно ее картинки. Получать номер мы будем из GET-параметра gallery.

В индексном файле после подключения файла функций получим номер галереи:

Здесь все просто. Если GET-параметр есть, тогда возьмем его, иначе – считаем, что нужно показывать картинки галереи №1. Сейчас url у нас будет выглядеть примерно так: http://localhost/gallery/?gallery=2. Так мы запрашиваем картинки второй галереи. Однако, можно попробовать сократить url, используя возможности модуля mod_rewrite. Давайте попробуем сделать ЧПУ адрес вида http://localhost/gallery/2, который будет запрашивать картинки второй галереи.

Откроем файл .htaccess и добавим в него следующие строки:

Первая строка включает нужный нам модуль. Вторая строка представляет собой правило переписывания ссылки. Флаг QSA необходим для работы пагинации.

Теперь при обращении по ЧПУ адресу мы будем видеть нужную нам страницу. Ну и коль мы используем ЧПУ, нам нужно в функцию пагинации в файле pagination.php передавать третий параметр, который даст понять функции, что работа идет с ЧПУ:

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Теперь осталось привести все ссылки в приложении к абсолютному формату, чтобы не было проблем с подключением скриптов, стилей и т.д. Для этого создадим файл config.php, который подключим перед файлом функций. Объявим в файле несколько констант и подключимся сразу к БД:

В константе SITE мы храним путь к приложению. Эта константа нам и понадобится для переписывания ссылок с относительных на абсолютные. Используем константу в индексном файле для всех ссылок примерно так:

Теперь давайте получим из БД картинки запрошенной галереи. Для этого в индексном файле закомментируем вызов функции get_images() и будем получать результат работы функции get_images_db():

Опишем функцию в файле функций:

В индексном файле можем распечатать массив $images, чтобы убедиться, что мы получаем картинки нужной галереи:

На этом мы завершим текущий урок. Удачи и до новых встреч!

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (2)

  1. Андрей

    Подскажите где находится файл дампа images.sql?
    Найти не могу.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree