Пагинация в php из БД (асинхронная)

221
12 июня 2018, 15:00

Нужно вывести по 3 записи на страницу, без перезагрузки страницы. Вроде просто, пишу:

$conn = mysqli_connect('localhost','root','','Blog');
$query = 'select * from Notes limit 0, 3';
$result = mysqli_query($conn, $query);
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);

, заменить числа на переменные и будет счастье. Но при замене выдает ошибку в последней строке "mysqli_fetch_all() expects parameter 1 to be mysqli_result". Уже часов 5 ломаю голову над этой пагинацией, может посоветуете что ? Переменные оборачивал в {}, и двойные фигурные пробовал,и кавычки одинарные-двойные. Беда из-за плохого знания методов на мой взгляд, но сроки жмут, а нужные мысли и статьи все не приходят =(

Answer 1

Скорее проблема не в числах, а в отсутствии данных на следующих страницах, из-за чего $result == false То есть нужно обернуть результат

if ($result) {
    $data = mysqli_fetch_all($result, MYSQLI_ASSOC);
}

У меня в проекте такие пагинаторы

public function getForPage($table, $page, $perPage = 10)
{
    $from = ($page - 1) * $perPage;
    $table = $this->wrapColumn($table);
    $sql = "SELECT * FROM " . $table .
        " ORDER BY `id` DESC LIMIT " . (int) $from . ', ' . (int) $perPage;
    return $this->db->query($sql) ?: [];
}
private function wrapColumn($column)
{
    return '`' . $this->db->real_escape_string($column) . '`';
}

По HTML это так выглядит (Bootstrap):

<ul class="pagination">
    <?php if ($page == 1) { ?>
        <li class="disabled"><span>Назад</span></li>
    <?php } else { ?>
        <li><a href="<?=url($url, ['page' => $page - 1]);?>" rel="prev">Предыдущая</a></li>
    <?php } ?>
    <?php if (isset($hasNextPage) && $hasNextPage) { ?>
        <li><a href="<?=url($url, ['page' => $page + 1]);?>" rel="next">Следующая</a></li>
    <?php } else { ?>
        <li class="disabled"><span>Следующая</span></li>
    <?php } ?>
</ul>
READ ALSO
laravel 5 сделать 404 страницу

laravel 5 сделать 404 страницу

Как сделать 404 страницу?

241
Категории новостей. SQL

Категории новостей. SQL

Есть новостной сайтУ каждой новости есть категории

183
Как использовать Laravel auth для двух разных пользователях

Как использовать Laravel auth для двух разных пользователях

Мое приложение имеет возможность авторизации двух разных пользователей, Докторов и Пациентов, с различными полями вводаКак использовать...

158
Parse error: syntax error, unexpected &#39;?&#39;

Parse error: syntax error, unexpected '?'

Помогите найти ошибку, уже все перепроверил 20 раз

186