Ограничить результаты запроса после получения результата

0

У меня возникла проблема с сортировкой и присвоением ранжирования с разбивкой по страницам.

$query = "SELECT * FROM users WHERE approved=1 ORDER BY Likes DESC LIMIT $start_from, $num_rec_per_page"; 
$result = mysqli_query($conn,$query);
$i=1;
while($row = mysqli_fetch_assoc($result)){
echo 'Rank: '.$i++.'. Name:'.$row[Name].'Likes: '.$row[Likes].'<br>';
}

Таким образом, каждый ранг страницы присваивается снова и снова. Мой вопрос заключается в том, как ограничивать запрос только ПОСЛЕ получения всех данных или, возможно, советами по другому способу pagionation.

ОБНОВЛЕНИЕ: Исправлена проблема, меняя $ я = 1; до $ я = $ start_from + 1;

  • 0
    Мне не очень понятно, что именно вы спрашиваете ..
Теги:
mysqli

1 ответ

0

Ограничение $ i?

$maxPerPage = 20;
$i = 0;
while($i < $maxPerPage && $row = mysqli_fetch_assoc($result)){
    echo 'Rank: '.$i++.'. Name:'.$row[Name].'Likes: '.$row[Likes].'<br>';
}

Но LIMITING в mysql (в вашем случае) лучше, чем получение всех строк и выборка только некоторых.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню