Форум → Программирование → PHP для идиотов → Постраничный вывод+сортировка
Постраничный вывод+сортировка
Страницы: ← Предыдущая страница • Следующая страница →
-
11 ноября 2008 г. 16:15, спустя 5 минут 56 секунд
обьясните плз челу почему линк на конекшн к бд не надо хранить в сессии -
11 ноября 2008 г. 16:18, спустя 3 минуты 17 секунд
relictx, и я, и AlexB тебя просили показать запрос! Один запрос, а не стотыщмильенов строк кода. -
11 ноября 2008 г. 17:01, спустя 42 минуты 46 секунд
Извените, я немного вас не понял, какой именно запрос нужен. Обещаю исправиться)
Итак,
LIMIT:LIMIT ".$page*$count_on_page." , ".$count_on_page;
Вместо всех 8000 записей, получилось только 20. Непонятно зачем так делать(
Заливаю файл на сайт, запускаю, ставлю сортировку по ASC, переключаю на вторую страницу.
Запрос при таком раскладе:
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)) order by famil ASC limit 0 , 20
Страница не переключилась. Правильно? -
11 ноября 2008 г. 17:17, спустя 16 минут 26 секунд
Ну а почему, у тебя на второй странице
0,20
когда должно быть
20,20
значит что-то не то с $page, смотри что там -
11 ноября 2008 г. 17:20, спустя 2 минуты 20 секунд
Вместо всех 8000 записей, получилось только 20. Непонятно зачем так делать(
Хотя бы из соображений быстродействия. Большая разница, 8к записей вытаскивать и перебирать, или 20.Страница не переключилась. Правильно?
Конечно не переключилась. Чтобы она переключилась, должно быть LIMIT 20, 20.LIMIT ".$page*$count_on_page." , ".$count_on_page;
Вообще-то, формула LIMIT ".($page*$count_on_page - $count_on_page)." , ".$count_on_page;
То есть у тебя должно получиться LIMIT 2*20 - 20, 20. -
11 ноября 2008 г. 17:23, спустя 3 минуты 40 секунд
sap, только надо оговорить, что такая формула нужна при нумерации страниц начиная с 1
а такая как есть при нумерации с 0
а то совсем запутаешь его. -
11 ноября 2008 г. 18:16, спустя 52 минуты 47 секунд
AlexB, ну да, но я еще не видел, чтобы страницы (если они нумеруются именно как порядковые, 1 2 3 … n), начинались с нулевой :) -
11 ноября 2008 г. 18:17, спустя 1 минуту 21 секунду
Сейчас пишу из дома, завтра с утра буду опять мучать код)
$count_on_page ведь мы задаем сами в начале программы, правильно?
$page я посмотрю, наверно что то не так.
ЗЫ: Спасибо что помогаете, я бы сам наверно еще долго сидел)
AlexB, ну да, но я еще не видел, чтобы страницы (если они нумеруются именно как порядковые, 1 2 3 … n), начинались с нулевой :)
Он наверно имел ввиду что по умолчанию(если самому не задать), 1-я страница будет распознана машиной, как 0-я) Тоесть примет значение нулевой. -
11 ноября 2008 г. 18:29, спустя 12 минут 1 секунду
AlexB, ну да, но я еще не видел, чтобы страницы (если они нумеруются именно как порядковые, 1 2 3 … n), начинались с нулевой :)
Они нумеруются иногда как порядковые начиная с единицы, а в параметре передается на 1 меньше.
В общем, тут главное чтоб формулу для LIMIT чел осмысленно выбирал. -
12 ноября 2008 г. 10:50, спустя 16 часов 20 минут 17 секунд
Все, сделал LIMIT. На локалхосте тестим, работает.
На первой странице LIMIT 0,20
НА второй странице LIMIT 20,20
Кидаю на сайт, запускаю, ставлю сортировку, переключаю страницу(допустим нажал на 2-ю), остаются на прежней 1-й странице. LIMIT 0,20
Ощущение такое, что не реагирует именно на ссылку. Приhref="#"
работает нормально, но ведь мне нужна сортировка. ПОэтому правильныйhref="?field='.$_REQUEST['field'].'&sort='.$_REQUEST['sort'].'&page='.$i.'"
К слову, раньше пользывался другим способом. И было как то странно. У нас тут 2 инета, обычный и безлимитный(с включением проксей). При подключении к обычному инету, раьботало на сайте браузером firefox, но не работало с другими браузерами. А при ьбезлимитном инете с проксями вообще ни на одном не пахало. Пахало, в смысле переключались страницы. Я уже совсем запутался, помогите… -
12 ноября 2008 г. 11:33, спустя 43 минуты 15 секунд
У меня корявый код разбивки по страницам был. Переписал код, теперь вроде рульно все. Получается что ошибка в этом. Может глянете? На второй странице топика я выставил код, что там не так? -
12 ноября 2008 г. 12:33, спустя 59 минут 43 секунды
Что ты подразумеваешь под "кодом разбивки по страницам"? Кусок который рисует цифирки страниц или который выводит данные?
У меня корявый код разбивки по страницам был.
Ты думаешь тут у всех вcтроенный транслятор в голове? Что было не так можешь найти только ты, на конкретной машине, с конкретными настройками. Мы можем только ответить на те или иные локализованные вопросы. И потом, если теперь "вроде рульно все" значит ты знаешь, что ты поправил?
Переписал код, теперь вроде рульно все. Получается что ошибка в этом. Может глянете? На второй странице
А зачем выводить все? Смысл? Тебе не кажется, что задачи "сделать постраничное разбиении" и "вывести все" противоречивы априори? Тут уж надо определяться, либо крест снять либо штаны надеть.
И как вывести потом все значения, а не 20 например?
И наконец, зачем ты пишешь & amp; в урлах? Достаточно просто & -
12 ноября 2008 г. 12:34, спустя 1 минуту
$_REQUEST['field']
Используй $_GET и $_POST.
Так я не понял, проблема решена или нет? -
12 ноября 2008 г. 12:35, спустя 1 минуту 16 секунд
И наконец, зачем ты пишешь & в урлах? Достаточно просто &
AlexB имел в виду, зачем ты пишешь & amp; вместо просто & -
12 ноября 2008 г. 12:37, спустя 2 минуты 2 секунды
Переделал, а точнеее полностью изменил код(может не правильно выразился когда сказал "разбивки по страницам"), которые рисует цифры и назначает ссылки. Просто пока не могу понять, где там загвоздка, и почему он не регагирует на ссылки, кроме
.#
Вывел все данные(извеняюсь, опять не правилньо выразился). а не 20 строк)
Спасибо зп помощь, буду мучать код, которые не пашет) Хочется разобраться все таки)
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!