![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
savmp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
ПОМОГИТЕ написать пагинацию...
Есть БД - BASE_A с таблицей TABLE_B которая состоит из столбцов: CALL_B_A CALL_B_B CALL_B_C CALL_B_D CALL_B_E CALL_B_F CALL_B_G CALL_B_H CALL_B_I CALL_B_G ПОМОГИТЕ написать пагинацию... вывода в цыкле FOR всех полей из БД по 7 цыклов на 1 страницу в виде: << < ... 10 11 12 13 14 15 16 ... > >> Это сообщение отредактировал(а) savmp - 9.9.2010, 21:39 |
|||
|
||||
savmp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
КАК ПРИВЯЗАТЬ К ЭТОМУ СКРИПТУ МОЮ БАЗУ ДАННЫХ
$itemscount = 55; $itemsperpage = 2; if (isset ($_REQUEST['page'])) {$cpage = $_REQUEST['page'];} else {$cpage = 1;}// если странца не задана, то будем на 1й $pagedisprange = 2; // соклько страниц до и после текущей выводить $pagescount = ceil ($itemscount / $itemsperpage); // кол-во страниц $stpage = $cpage - $pagedisprange; // определим начиная с какого номера будем выводить страницы if ($stpage < 1) {$stpage = 1;} // если наше "начало" вылазит на отрицательные номера, то стави м в 1 $endpage = $cpage + $pagedisprange; // аналогично с номером, по который будем выводить if ($endpage > $pagescount) {$endpage = $pagescount;} // если больше чем страниц, то последняя выводимая страницы - самая последняя наша if ($cpage > 1) {echo '<a href="?page=1"><<</a>'; echo '<a href="?page='.($cpage-1).'"><</a>';}// first prev if ($stpage > 1) echo '... '; // если начало вывода не 1, то напечатаем три точки for ($i = $stpage; $i <= $endpage; $i++) { if ($i == $cpage) {echo '<strong>'.$i.'</strong> ';} else {echo '<a href="?page='.$i.'">'.$i.'</a> ';} } if ($endpage < $pagescount) echo '...'; // если начало конец вывода не последняя страница, то напечатаем три точки if ($cpage < $pagescount) {echo '<a href="?page='.($cpage+1).'">></a>'; echo '<a href="?page='.$pagescount.'">>></a>';}// last |
|||
|
||||
bars80080 |
|
||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а в чём проблема?
запрос заканчивается на ... LIMIT $start, 7 где
а в ссылке на страницу этот старт и передаём:
остаётся только набрать количество страниц. узнать полное количество записей: SELECT count(*) FROM ... а затем цикл, сравнение с текущей позицией и показ соседних страниц Добавлено через 2 минуты и 42 секунды
|
||||||
|
|||||||
savmp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
???
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
!!!
|
|||
|
||||
savmp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
Не получаеться. :(
Помоги написать скрипт... уже 4 день голову ломаю :( |
|||
|
||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Напугал его тернаркой
![]() вот готовый и рабочий пример, только свои данные впиши http://php.about.com/od/phpwithmysql/ss/php_pagination.htm по русски http://tmbu.info/create-pages-navigation-menu-in-two-ways/ Это сообщение отредактировал(а) Muerto - 9.9.2010, 22:37 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
что значит написать? вот он уже готовый, сам привёл. осталось вначале заменить
$itemscount = 55; $itemsperpage = 2; на $sql = 'SELECT count(*) FROM `TABLE_B`'; $q = mysql_query($sql); $f = mysql_fetch_assoc($q); $itemscount = $f['count(*)']; $itemsperpage = 7; всё. остальное копипаст. |
|||
|
||||
savmp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 260 Регистрация: 27.7.2009 Где: Геленджик Репутация: -13 Всего: -16 |
Не понимаю... :(
|
|||
|
||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
savmp, Если тебе совершенно не ясно, то или укажи именно строку которую не ясно...
И так пока не станет ясно... Или почитай в интернете с основ... Разбей задачу на более легкую... За место того что бы показать все страницы снизу в списке, попробуй для начала решить вот такие задачки: 1. Выведите с базы первых 10 записей 2. Выведите с базы при условии что в ней 50+ записей, записи 20-30 (при условии что у вас id идет по увиличению и начинается с 1) 3. Подсчитайте количество записей в вашей базе. 4. Выберите все записи с базы, но покажите на странице только 10! Вот после того как вы это все решите, можно будет двигаться дальше... Если вы себе даже и не представляйте как решить мои задачки 1-4 , то вам до пагинации ещё далеко... Берите готовые решения и используйте... Это сообщение отредактировал(а) Muerto - 10.9.2010, 00:12 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |