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

21

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

Галерея сайту. Урок 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;
}

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

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

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