Мне нужно выбрать только 20 записей из таблицы, а затем добавить разбивку на страницы, чтобы показать 5 записей на странице. Я знаю, что существует использование LIMIT в разбивке на страницы, но сначала мне нужно получить 20 записей, а затем добавить разбивку на страницы для этих 20 записей.PHP Pagination Ограниченное количество записей, но не все
ответ
Вы можете выбрать 20 записей за один раз, а затем использовать array_slice для разбивки на страницы.
Edit: Почему есть 2 ПРЕДЕЛЫ? Предельное значение должно быть следующим:
1st page: LIMIT 0, 5
2nd page: LIMIT 5, 5
3rd page: LIMIT 10, 5
4th page: LIMIT 15, 5
Я хочу показать последние 20 последних добавленных книг. и хотите показать их по 5 на страницу. так что действительно есть 2 ПРЕДЕЛЫ. первый лимит, чтобы получить 20 записей, а затем добавить разбивку на страницы, чтобы показать 5 записей на странице. Я просто не знаю, как этого добиться. Я не хочу использовать срез массива –
@KhawerZeshan Если вы не хотите использовать только один запрос, то в чем ваша проблема, это не просто нормальный лимит использования и смещение страницы? – xdazz
Непонятно об источнике путаницы @KhawerZeshan. – verisimilitude
Используйте два запроса. Один, чтобы получить общее количество записей (он вернет только одну строку, содержащую счетчик). После этого используйте LIMIT для выбора разбивки на страницы.
Я дам вам общее представление о том, как это сделать.
1) Узнайте много много строк есть в таблице (Simple -
SELECT COUNT(*)
In your case it is 20.
2) Узнайте, сколько страниц вы хотите, чтобы показать, в зависимости от количества строк на странице вы хотите перейти для.
intPages = ceil(intTotalRecords/8)
так что все плавающие точки будет CEIL()-й изд смыслом, если это деление приводит значение 9,5, то 10 будет рассматриваться как число страниц.
3) Узнайте текущую страницу, на которой вы находитесь. 4) Определите предел и смещение (в зависимости от номера страницы), которое будет отправлено по вашему запросу. Что-то в следующих строках.
intLimit = 8;
intOffset = (intCurrentPage - 1) * intRowsPerPage;
5) Вытяните строки для текущей страницы
6) Отображение информации. (ссылки на страницы и их чередование)
Необходимо проверить, прошло ли предыдущая/следующая страница 1 или максимальное количество страниц, которые вы имеете, и соответственно установить значение intCurrentPage
.
ОБНОВЛЕНИЕ: Чтобы получить последние 20 блоков записей из вашего стола.
SELECT <column_names> FROM <table_name>
<optional_where_clause_goes_here>
ORDER BY <primary_autoincrement_id_field> DESC
LIMIT 20;
ИЛИ
SELECT <column_names> FROM <table_name>
WHERE <certain_conditions_here>
and <primary_autoincrement_id_field> >= (select max(<primary_autoincrement_id_field>) from <table_name>) - 20
Там есть зависимость в каждом из приведенных выше запросов я опубликовал, который является поле <primary_autoincrement_id_field>
должно быть auto_increment.
сначала получить общее количество из таблицы и вызвать эту функцию пагинацию она возвращает массив
$array = pagination(200000);
и вы можете написать запрос, как
$query = "SELECT * FROM your_table ".$array['querylimit'];
также вы можете использовать другую indexex массива для пагинации ,
function pagination($totalRows, $perPage = 20){
$page = (isset($_POST['pagination']['page'])) ? intval($_POST['pagination']['page']) : 0;
$perPage = intval($perPage);
if($perPage == 0){
$perPage = 20;
}
if(intval($page) < 0){
$page = 1;
}
if (ceil($totalRows/$perPage) < intval($page)){
$page = ceil($totalRows/$perPage);
}
if (!$page){
$page = 1;
}
$prev = $page - 1;
$next = $page + 1;
if(intval($prev) < 0){
$prev = 1;
}
$min = (($page - 1) * $perPage);
if(ceil($totalRows/$perPage) < $next){
$next = 0;
}
$end = $min+$perPage;
if($end > $totalRows){
$end = $totalRows;
}
$start = $min+1;
$return['showing'] = "$start-$end of $totalRows";
$return['querylimit'] = " LIMIT $min, $perPage";
$return['next'] = $next;
$return['prev'] = $prev;
return $return;
}
- 1. Получите ограниченное количество записей в Firebase
- 2. Выберите ограниченное количество записей для каждой группы.
- 3. Ограниченное количество записей mysql с определенным атрибутом
- 4. GWT Combo Box: ограниченное количество отображаемых записей?
- 5. Таблица Sqlite, возвращающая ограниченное количество записей
- 6. Populate ограниченное количество документов
- 7. PHP - Pagination выбирает правильное количество страниц, но не разделяет строки
- 8. Ограниченное количество загруженных файлов
- 9. SQL - Возвращает ограниченное количество строк, но количество строк в строке
- 10. Ограниченное количество продуктов, отображаемых на странице портфолио
- 11. mysql: Показывать ограниченное количество записей в оболочке mysql?
- 12. IQueryable/Linq Orderby Fail: сортирует только ограниченное количество записей
- 13. Как опубликовать ограниченное количество записей из коллекции в Meteor?
- 14. BitBucket.org - ограниченное количество пользователей?
- 15. Извлечь ограниченное количество записей, которые находятся вблизи геопространственной точки
- 16. C# Ограниченное количество сообщений
- 17. Ограниченное количество ответов checkbox
- 18. Как показывать ограниченное количество тегов?
- 19. Количество связанных записей, но ограничить результаты
- 20. ASP.NET-хостинг - ограниченное количество учетных записей базы данных
- 21. Как печатать ограниченное количество символов?
- 22. PHP MySQLi Pagination Limit Количество страниц
- 23. Rails - нетерпеливо загружайте количество связанных записей, но не самих записей
- 24. Mongodb update ограниченное количество документов
- 25. Ограниченное количество параллельных методов работы
- 26. Ограниченное количество нажатий на кнопки
- 27. Ограниченное количество попыток простой игры?
- 28. SAPUI5 sap.m.input Ограниченное количество предложений предложения
- 29. Как экспортировать ограниченное количество строк из heroku
- 30. Как распечатать ограниченное количество запросов в Прологе
Вы, ребята, неправильно понимаете проблему, которую я пытаюсь описать. Я не хочу знать, как сделать разбивку на страницы. Я знаю, как сделать разбивку на страницы. но я хочу сделать разбивку на страницы на последние 20 записей таблицы. помогите мне понять, как добиться этого, а не рассказывать мне, как делать разбивку на страницы. спасибо –
Итак, я думаю, ваша проблема правильно отображает последние 20 записей таблицы? Ознакомьтесь с моим обновленным ответом ниже. – verisimilitude