Сделать несколько страниц из запроса mysql

Итак, у меня есть эта база данных правильно, с некоторыми полями, называемыми «id», «title» и «message». Теперь я получил около 700 сообщений в базе данных. Итак, все, что я хочу сделать, задает лимит максимум 50 заголовков сообщений на странице и делает несколько страниц … Как я могу это сделать?

Я знаю только, чтобы получить первую страницу, используя LIMIT

Как вы уже догадались, вам нужно использовать ключевое слово LIMIT .

Он принимает два значения (цитирование) :

  • смещение первой строки для возврата
  • максимальное количество строк для возврата

В вашем случае вам нужно будет использовать что-то подобное для первой страницы:

 select * from your_table order by ... limit 0, 50 

И затем, для второй страницы:

 select * from your_table order by ... limit 50, 50 

И для третьего:

 select * from your_table order by ... limit 100, 50 

И так далее 😉

Измените после комментария: чтобы получить номер страницы, вам нужно будет получить его из своих URL-адресов, который будет выглядеть следующим образом:

 http://www.example.com/page.php?pagenum=2 

Затем вы вычислите первое значение для предела:

 $offset = 50 * intval($_GET['pagenum']); 

И добавьте его в свой запрос:

 select * from your_table order by ... limit $offset, 50 

Построение URL-адресов на разных страницах теперь связано с получением таких URL-адресов:

 http://www.example.com/page.php?pagenum=0 http://www.example.com/page.php?pagenum=1 http://www.example.com/page.php?pagenum=2 ... 

Если вы знаете, что у вас 700 элементов и 50 на страницу, у вас будет 700/50 страниц 😉
Итак, что-то вроде этого должно сделать трюк:

 for ($i=0 ; $i<700/50 ; i++) { // Use http://www.example.com/page.php?pagenum=$i as URL } 

Конечно, 700 – это значение, которое, вероятно, может измениться и не должно быть жестко запрограммировано: оно должно быть определено из базы данных с использованием запроса на count :

 select count(*) as total from your_table ... 

Ваш PHP-файл может принимать аргумент GET, являющийся номером страницы.

Затем вы делаете свой запрос с помощью LIMIT ($ page_number * $ messages_per_page), $ messages_per_page (псевдокод).

$ messages_per_page = 50 в вашем случае. $ page_number выводится из аргумента GET после дезинфекции , причем первая страница является номером страницы 0.