Форум → Программирование → PHP для идиотов → Постраничный вывод+сортировка
Постраничный вывод+сортировка
-
Здравствуйте! У меня вопрос в следующем:
Подключаюсь к базе, вывожу данные(окола 8000 строк, несколько столбцов). Сделал постраничный вывод, сортировку по нажатию на заголовки по ASC и DESC. Как сделать так чтобы, при сортировке того или иного сотлбца и нажатии на 2-ю, 3-ю и т.д. страницы, сортировка сохранялась? Спасибо! -
11 ноября 2008 г. 12:34, спустя 9 минут 30 секунд
Два варианта:
1. Передавать в параметре каждый раз по какому столбу сортировать.
2. Хранить имя столбца в сессии. -
11 ноября 2008 г. 12:43, спустя 8 минут 39 секунд
Два варианта:
1. Передавать в параметре каждый раз по какому столбу сортировать.
2. Хранить имя столбца в сессии.
Передаю столбец и вид сортировки ссылке(номеру страницы):href='.$_SERVER['PHP_SELF'].'?field='.$_GET['field'].'&sort='.$_GET['sort'].'&page='.$i.';
Результата нет, переключаются страницы, значения столбцов и сортировки передаются, но сами строки остаются прежними. Тоесть визуально 1-я страница и остается. Не понимаю в чем может быть дело. -
11 ноября 2008 г. 13:04, спустя 21 минуту 12 секунд
Ну а SQL запрос распечатать и выполнить отдельно не пробовал? -
11 ноября 2008 г. 13:10, спустя 5 минут 57 секунд
Ну а SQL запрос распечатать и выполнить отдельно не пробовал?
SQL запрос правильный. Там проблем нет) -
11 ноября 2008 г. 13:12, спустя 2 минуты 7 секунд
Как это, интересно? SQL запрос выдает данные для 2-ой страницы, а скрипт все-равно рисует первую? Не верю … -
11 ноября 2008 г. 13:16, спустя 3 минуты 16 секунд
видать проблема с LIMIT раз рисует первую страницу, SQL запрос в студию. -
11 ноября 2008 г. 13:18, спустя 1 минуту 56 секунд
Как это интересно? SQL запрос выдает данные для 2-ой страницы, а скрипт все-равно рисует первую? Не верю …
Эмм… у меня один SQL запрос, выводящий всю базу данных. Так и должно быть ведь?!) Или вы про ли LIMIT сейчас хотите сказать? -
11 ноября 2008 г. 13:18, спустя 55 секунд
Конечно, не должно так быть. Конечно надо использовать LIMIT.
Эмм… у меня один SQL запрос, выводящий всю базу данных. Так и должно быть ведь?!) Или вы про ли LIMIT сейчас хотите сказать? -
11 ноября 2008 г. 13:19, спустя 27 секунд
видать проблема с LIMIT раз рисует первую страницу, SQL запрос в студию.
$sql="SELECT teachers.id as t_id,famil,teachers.name as tname,otch, birthday,schools.name as schl,category.name as cname, subject.name as sname,kursinfo.kursplan,kursinfo.kursdate,kursinfo.skill, rayons.name
FROM
rayons,
teachers left join schools on teachers.school=schools.id,
(kursinfo left join subject on kursinfo.subject=subject.id)
left join category on kursinfo.category=category.id
WHERE ((teachers.id=kursinfo.tid) and (rayons.id=teachers.rayon))";
Могу обрисовать картину более подробно, с постраничным выводом и реализацией сортировки если нужно. -
11 ноября 2008 г. 13:25, спустя 5 минут 50 секунд
Да чего тут обрисовывать.
Тебе надо в конце запроса написать LIMIT $страница*$число записей на странице, $число записей на странице
Надеюсь поймешь, что русские слова надо заменить на php переменные. -
11 ноября 2008 г. 13:33, спустя 8 минут 18 секунд
Да чего тут обрисовывать.
Тебе надо в конце запроса написать "LIMIT $страница*$число записей на странице, $число записей на странице"
Надеюсь поймешь, что русские слова надо заменить на php переменные.
Спасибо.
Вот так, если правильно понял:$sql="…LIMIT ".$page*$count_on_page." , ".$count_on_page;
ВЫскочили ошибки, попробую разобраться…
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in D:\…*.php on line 452
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in D:\…*.php on line 465 -
11 ноября 2008 г. 13:34, спустя 55 секунд
Запятую забыл.
Да учти, что нумерация страниц при таком алгоритме начинается с 0 -
11 ноября 2008 г. 13:42, спустя 8 минут 19 секунд
Запятую забыл.
Да учти, что нумерация страниц при таком алгоритме начинается с 0
Спасибо за столь быстрый ответ!
Ошибки только вот не исчезают… -
11 ноября 2008 г. 13:47, спустя 4 минуты 28 секунд
Ну дык опять печатай запрос, пробуй выполнить отдельно, смотри что в нем за проблема.
Только так и отлаживаются приложения.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!