Разбиение на страницы PHP/MySQL

Я плохо знаком с php и sql, и у меня есть один крошечный вопрос о том, как понять запрос SQL, который может:

  • Возьмите, например, 5 записей от DB, вставьте их на 1-й странице (1-5)
  • Чем берут следующие 5 записей от того же DB и вставляют их на другой странице (5-10)
    и так далее :)

Спасибо)

6
задан Konerak 12 July 2010 в 13:45
поделиться

3 ответа

SELECT col FROM table LIMIT  0,5; -- First page, rows 1-5
SELECT col FROM table LIMIT  5,5; -- Second page, rows 6-10
SELECT col FROM table LIMIT 10,5; -- Third page, rows 11-15

Прочтите раздел LIMIT в справочной системе MySQL SELECT . Если вы хотите отобразить общее количество доступных строк, вы можете выполнить дополнительный подсчет или использовать функцию ROW_COUNT .

5
ответ дан 17 December 2019 в 04:41
поделиться

Если ваш запрос не возвращает недопустимое количество результатов, рассмотрите возможность использования JQuery для его постраничного вывода с помощью функции Tablesorter. Он принимает правильно отформатированную HTML-таблицу и страницы, сортировку и т. Д. На лету ... нет необходимости в дополнительных переменных запроса, если вы не хотите. Это НАСТОЛЬКО проще, чем полноценный маршрут разбиения на страницы PHP, и намного быстрее для пользователя.

Мой личный любимый пример находится здесь: http://datatables.net/

Возможно, он не полностью соответствует вашим потребностям, но для многих приложений подходит. Если вы это сделаете, просто не забудьте отформатировать свою таблицу с помощью thead и tbody, чтобы она могла правильно подбирать элементы таблицы.

0
ответ дан 17 December 2019 в 04:41
поделиться

Есть несколько способов сделать это, я думаю, что быстрее всего работает следующий:

$ItemsPerQuery = 5;
$CurrentPage = 0; //here you can add the current site through $_GET array or other ways, but don't forget to use mysql_real_escape_string(), because of mysql injection 

$Query = mysql_query("SELECT * FROM table LIMIT ".($ItemsPerQuery*$CurrentPage).",".$ItemsPerQuery);

while($row = mysql_fetch_assoc($query))
{
    echo $row['column_name'];
}

Вещи, которые вы должны использовать:

0
ответ дан 17 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: