twofolls95
@twofolls95

Как решить проблему с выводом записей по категориям при клике на пагинацию?

Суть такая, есть пагинация для записей на главной странице, всё работает, но когда я переключаюсь на вывод записей только определённой категории и кликаю на ссылку в пагинации, то php выдаёт ошибку:
Warning: mysqli_fetch_all() expects parameter 1 to be mysqli_result, boolean given in D:\OpenServer\OSPanel\domains\testproject\testblog\ads\ads_category.php on line 19

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in D:\OpenServer\OSPanel\domains\testproject\testblog\ads\ads_category.php on line 22


То есть, получается что посты не вытягиваются из БД, вот я только немогу до конца понять почему так...

PHP-код:

<?php

//Вывод категорий в сайдбаре
$categories = get_category($connect);
//Получение ID категории и присвоение в переменную
$category_id = $_GET['id'];
//Вывод постов по категории
if(isset($_GET['page'])){
	$page = (int)$_GET['page'];
} else {
	$page = 1;
}
	$notesOnPage = 3; //Количество выводимых записей
	$from = ($page - 1) * $notesOnPage; //Перебор записей
  //Запрос в БД
	$category_id = mysqli_real_escape_string($connect, $category_id);
	$sql = "SELECT * FROM posts WHERE category_id = ".$category_id." ORDER BY id DESC LIMIT $from, $notesOnPage";
	$result = mysqli_query($connect, $sql);
	$posts = mysqli_fetch_all($result, MYSQLI_ASSOC);
	$sql = "SELECT COUNT(*) as count FROM posts WHERE category_id = ".$category_id;
	$result = mysqli_query($connect, $sql);
	$count = mysqli_fetch_assoc($result)['count'];
	$pagesCount = ceil($count / $notesOnPage);

	?>


HTML-код:

<nav aria-label="Page navigation example">
        <ul class="pagination justify-content-center mb-4">
          <?php for ($i = 1;$i <= $pagesCount; $i++){ ?>
            <li class="page-item"><a class="page-link" href="?page=<?php echo $i ?>"><?php echo $i ?></a></li>
          <?php } ?>
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
twofolls95
@twofolls95 Автор вопроса
Проблема решена путём исправления ссылки в HTML-файле.
Заместо:
href="?page=
Нужно прописать:
href="category.php?id=<?=$category_id?>&page=
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы