Вчера осваивал новую для себя вещь - постраничный вывод. В общем все работает, все нормуль, но нет предела совершенству.
Задумал:
1) Вывод по количеству строк, ну например по 10 по 20, по 30.
$per_page = 10;
$num_pages=ceil($total_rows/$per_page);//$total_rows-количество записей
if (isset($_GET['page'])) $page = intval($_GET['page']-1); else $page=0;
$start = intval( abs($page*$per_page));
if (isset($_GET['num'])) {$page = intval($_GET['num']); $start = $page-10; } else $page=0;
....LIMIT $start, $per_page...
При подмене здесь 10 переменной через форму, при переходе на другую страницу вывода, переменная пропадает и тогда ничего не выводится.
2) Та же фигня если через форму, сделать сортировку ...ORDER BY `$itemid`
Погуглив, ничего толком не нашел. Сегодня с 8.00 сижу с формами перепробовал все-фигня одна. Печенкой чувствую, через js надо делать. Подскажите пожалуйста, чего здесь придумать можно?
Спустя 1 минута, 25 секунд (22.01.2012 - 11:38) T1grOK написал(а):
передаем нужные значения через GET параметры.
Спустя 1 минута, 41 секунда (22.01.2012 - 11:40) redreem написал(а):
вообще где-то была инфа, что задавать пагинатор исключительно через GET (да и через POST) - чревато тем, что ваш сайт уронют путем искуственного запроса ?num=100500.
параметры пагинатора для сессии надо хранить на стороне сервера, например в сессионных переменных. тогда и ваша проблема автоматом решится.
параметры пагинатора для сессии надо хранить на стороне сервера, например в сессионных переменных. тогда и ваша проблема автоматом решится.
Спустя 10 минут, 22 секунды (22.01.2012 - 11:50) T1grOK написал(а):
redreem Большей ерунды не слышал.
Спустя 17 минут, 18 секунд (22.01.2012 - 12:08) redreem написал(а):
T1grOK
ну значит ты много чего еще не слышал
ну значит ты много чего еще не слышал
Спустя 15 минут, 31 секунда (22.01.2012 - 12:23) Sergen написал(а):
Цитата (T1grOK @ 22.01.2012 - 08:38) |
передаем нужные значения через GET параметры. |
Если имеется ввиду форма через get, то пробовал, там вообще каша получается в урле, и обработчик не инклюдится у меня. Или я неправильно Вас понял?
Спустя 7 минут, 47 секунд (22.01.2012 - 12:31) Sergen написал(а):
Цитата (redreem @ 22.01.2012 - 08:40) |
вообще где-то была инфа, что задавать пагинатор исключительно через GET (да и через POST) - чревато тем, что ваш сайт уронют путем искуственного запроса ?num=100500. параметры пагинатора для сессии надо хранить на стороне сервера, например в сессионных переменных. тогда и ваша проблема автоматом решится. |
Положить сервер в моем случае не получится, поскольку это число в первую очередь идет в в запросе в LIMIT в первый параметр( с какой строки).
А вот по поводу сессионных переменных, тут наверное Вы правы, наверное это самое приемлемое решение. Плохо одно, я еще до конца с сессиями не разобрался((((
Спустя 2 минуты, 32 секунды (22.01.2012 - 12:33) redreem написал(а):
с сессиями ниче сложного.
session_start ();
$_SESSION['num'] = $num;
положить получится, если будет передаваться параметр numOnPage и он не будет проверяться на лимиты (есть же пользовательский выбор количества записей на странице).
session_start ();
$_SESSION['num'] = $num;
положить получится, если будет передаваться параметр numOnPage и он не будет проверяться на лимиты (есть же пользовательский выбор количества записей на странице).