ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

Запрос разделить на страницы

 

3173
Николай @grom
Я тут вспомнил, что недавно надо было сделать SQl запрос на очень большой список, т.е. его отобразить. Вот в PHP скажите куда что нужно, чтобы запрос разделился на часть.
Вот как на рисунке WEBERA(прошу прощения за использование твоего скрина). жмем на единичку, показывает допустим 20 записей, на двойку от 21 до 40 и т.д.

Понимаю что нужно ставить лимит на количество записей.
Можете небольшой пример показать? На ссылку что ли пихать запросы?

2349
redsymbzone @redsymbzone
Давно подобное приходилось делать, ничего сложного. Припустим у тебя есть переменная $per_page = 10 и $page это страница на которой юзер находится.

$query = mysql_query("SELECT * FROM table ORDER BY id DESC");

заполняем форму со страницами
for($i = 0; $i < mysql_num_rows($query)/$per_page; $i++) {
if($page != $i+1)$pages .= "<a href='".$pre."&page=".($i+1)."'>".($i+1)."</a>&nbsp;&nbsp;&nbsp;";
else $pages .= ($i+1)."&nbsp;&nbsp;&nbsp";
}

а вот где мы фильтрируем
$query = mysql_query("SELECT * FROM table ORDER BY id DESC LIMIT ".$per_page*$page." , ".$per_page);
while($_repo = mysql_fetch_array($query)) {
//куча кода
}

Отредактировано redsymbzone - 22.10.2011
3173
Николай @grom
redsymbzone пишет:

Давно подобное приходилось делать, ничего сложного. Припустим у тебя есть переменная $per_page = 10 и $page это страница на которой юзер находится.

$query = mysql_query("SELECT * FROM table ORDER BY id DESC");

заполняем форму со страницами
for($i = 0; $i < mysql_num_rows($query)/$per_page; $i++) {
if($page != $i+1)$pages .= "<a href='".$pre."&page=".($i+1)."'>".($i+1)."</a>&nbsp;&nbsp;&nbsp;";
else $pages .= ($i+1)."&nbsp;&nbsp;&nbsp";
}

а вот где мы фильтрируем
$query = mysql_query("SELECT * FROM table ORDER BY id DESC LIMIT ".$per_page*$page." , ".$per_page);
while($_repo = mysql_fetch_array($query)) {
//куча кода
}

Спасибо

2349
redsymbzone @redsymbzone
забыл сказать что в LIMIT 1й параметр должен быть $per_page*$page-$per_page а то если $page = 1 то выведет в промежутке от 10 до 20

Отредактировано redsymbzone - 22.10.2011