Галерея сайту. Урок 7. БД

25

Від автора: у цьому уроці ми продовжимо змінювати код галереї для того, щоб вона використовувала в своїй роботі базу даних. Зокрема, ми зробимо невеликі правки в коді, в результаті яких наша галерея почне свою роботу, правда, поки що з перезавантаженням сторінки при кліці по посиланнях пагинации.

Галерея сайту. Урок 7. БДГалерея сайту. Урок 7. БД

Перше, що нам потрібно, це написати функцію підрахунку картинок в обраній галереї. Назвемо функцію count_images() і опишемо її у файлі функцій:

/** * кількість картинок галереї function count_images($gallery){ global $db; $query = «SELECT COUNT(*) FROM images WHERE gallery_id = $gallery»; $res = mysqli_query($db, $query); $row = mysqli_fetch_row($res); return $row[0]; }

У файлі pagination.php відповідно, у змінну $count_img будемо приймати вже результат роботи щойно написаної функції:

// загальна кількість фото $count_img = count_images($gallery);

Оскільки далі нам потрібно вибирати з БД тільки певну кількість картинок для кожної конкретної сторінки, то нам необхідно перемістити в індексному файлі підключення файлу pagination до виклику функції get_images_db(). Це логічно, оскільки у файлі pagination.php є дані (змінні $start_pos і $perpage), які нам будуть потрібні для функції get_images_db().

Тепер розширимо функцію get_images_db(), приймаю 2 додаткові параметри. Ці параметри якраз і потрібні для того, щоб вибирати певну кількість картинок для певної сторінки. В індексному файлі передамо додаткові параметри:

$images = get_images_db($gallery $start_pos, $perpage);

І у файлі функцій змінимо функцію get_images_db():

/** * отримання зображень з БД **/ function get_images_db($gallery $start_pos, $perpage){ global $db; $query = «SELECT id, img, description images FROM WHERE gallery_id = $gallery ORDER BY id ASC LIMIT $start_pos, $perpage»; $res = mysqli_query($db, $query); $images = array(); while($row = mysqli_fetch_assoc($res)){ $images[$row[‘id’]] = $row; } return $images; }

І залишилося поміняти висновок картинок в індексному файлі. Тепер висновок буде таким:

В даній галереї картинок немає

1 ): ?>

Після всіх зазначених змін, галерея повинна заробити, правда, поки що з перезавантаженням сторінки. У наступному уроці ми додамо перехід по сторінкам без перезавантаження.

На цьому ми завершимо поточний урок. Удачі і до нових зустрічей!