Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> КАК написать пагинацию? 
V
    Опции темы
savmp
  Дата 9.9.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: 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
PM MAIL ICQ   Вверх
savmp
Дата 9.9.2010, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: 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
PM MAIL ICQ   Вверх
bars80080
Дата 9.9.2010, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а в чём проблема?
запрос заканчивается на ... LIMIT $start, 7
где 

Код

$start = (empty($_GET['start'])) ? 0 : intval($_GET['start']);


а в ссылке на страницу этот старт и передаём:

Код

echo '...<a href="?start='.($page*7).'">'.$page.'</a>...';

остаётся только набрать количество страниц.
узнать полное количество записей: SELECT count(*) FROM ...
а затем цикл, сравнение с текущей позицией и показ соседних страниц

Добавлено через 2 минуты и 42 секунды
Код

$sql = 'SELECT count(*) FROM `TABLE_B`';
$q = mysql_query($sql);
$f = mysql_fetch_assoc($q);
$itemscount = $f['count(*)'];
$itemsperpage = 7;


всё
PM MAIL WWW   Вверх
savmp
Дата 9.9.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 260
Регистрация: 27.7.2009
Где: Геленджик

Репутация: -13
Всего: -16



???
PM MAIL ICQ   Вверх
bars80080
Дата 9.9.2010, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



!!!
PM MAIL WWW   Вверх
savmp
Дата 9.9.2010, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 260
Регистрация: 27.7.2009
Где: Геленджик

Репутация: -13
Всего: -16



Не получаеться. :(

Помоги написать скрипт... уже 4 день голову ломаю :(
PM MAIL ICQ   Вверх
Muerto
Дата 9.9.2010, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Напугал его тернаркой  smile 
вот готовый и рабочий пример, только свои данные впиши
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


--------------------
user posted image
PM MAIL   Вверх
bars80080
Дата 9.9.2010, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 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;

всё. остальное копипаст. 
PM MAIL WWW   Вверх
savmp
Дата 9.9.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 260
Регистрация: 27.7.2009
Где: Геленджик

Репутация: -13
Всего: -16



Не понимаю... :(
PM MAIL ICQ   Вверх
Muerto
Дата 10.9.2010, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.