| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Pagination шаг за шагом |
| Автор: insy 4.10.2009, 17:19 |
| Доброго времени суток, помогите пожалуйста разобраться как работает pagination... именно шаг за шагом, короткий алгоритм! Можно на примере CI или просто на голом php) Заранее спасибо... |
| Автор: Ипатьев 4.10.2009, 17:22 |
| а собственные идеи какие-нибудь есть? |
| Автор: insy 4.10.2009, 17:27 |
| Ну как бы... Я вообщем хочу разобраться.... например берем CodeIgniter... что заносим в контроллер, что в модель, что во вьюху... на самом простом примере,... А то в юзер гиде по CI не очень подробно написано... |
| Автор: Ипатьев 4.10.2009, 17:36 |
| Вы тогда не очень удачное название теме дали. Алгоритм выполнения программы - это одно. Последовательность нажимания кнопочек при вызове готовой библиотеки - совсем другое. К алгоритму она не имеет отношения. Имеет смысл спросить на каком-нибудь специализированном форуме, посвященном этому фреймворку. Поскольку множество программистов на РНР не слишком пересекается со множеством пользователей одного из фреймворков. |
| Автор: insy 4.10.2009, 17:39 |
| согласен, ну а просто на php без использования CI? |
| Автор: Ипатьев 4.10.2009, 17:48 |
| Ну а без использования CI собственные идеи какие-нибудь есть? |
| Автор: insy 4.10.2009, 17:55 |
| а что подразумевается по собственными идеями? как я это сам вижу? |
| Автор: Ипатьев 4.10.2009, 17:56 |
| ну да какие есть идеи по данному алгоритму. |
| Автор: insy 4.10.2009, 18:04 |
| как вариант есть таблица с огромным количеством записей нужно сделать, чтобы записи разбивались например по 40элементов, ну и соответственно можно было перемещаться... Так же реализовать кнопки "Первая" и "Последняя" страницы... ну вот как- то так... |
| Автор: Ипатьев 4.10.2009, 18:07 |
| Ну, неплохая постановка задачи. А какие идеи по реализации? Скажем по разбивке? Что имеется в виду под словом "разбивались"? |
| Автор: Kallisto 4.10.2009, 22:49 |
| Всегда раздражали "эксперты" которые вместо решения проблемы начинают задалбывать зачем это вам и давайте думайте сами.. Итак: При выборки из базы используется SQL запрос. При задании запроса можно указать сколько записей и начиная с какой необходимо сделать выборку. Это осуществляется с помощью LIMIT Использовать очень просто: SELECT * FROM TABLE LIMIT сколько_записей_надо или с OFFSET SELECT * FROM TABLE LIMIT начиная_с_какой, сколько_записей надо Пример: SELECT * from users limit 5 - покажет 5 юзеров SELECT * from users limit 5,10 - покажет 10 юзеров после 5ти Разбиение страниц работает по след. принципу, например если задана переменная $page то мы ее толкаем в запрос Допустим надо чтобы было по 50 записей на страницу. Нумерация страниц с 1 $perpage = 50; $offset = (--$page)*$perpage; $sql = "select * from users limit $offset,$perpage"; А ниже выводим страницы.. предварительно переменную $page необходимо проверить на валидность и существование Успехов. будут вопросы - пишите |
| Автор: youri 5.10.2009, 08:09 |
| Всегда раздражали "эксперты", которые дают готовое решение. Как минимум, они не дают ТС подумать. Причем часть из них хочет показаться умными. Как результат имеем "программистов", которые разрабатывают методом copy-paste и за каждым новым куском бегуют на форум ;) |
| Автор: Leklerk 5.10.2009, 08:58 |
| youri, |
| Автор: Kallisto 5.10.2009, 09:51 |
| Если вы считаете, что сказать человеку про ЛИМИТ, кратко объяснить для чего он и как использовать в РНР и для решения pagination то да.. это готовое решение. |
| Автор: insy 5.10.2009, 13:50 |
| Согласен, что оба участника спора правы... что собственно копипаст это не замечательно... и излишне пытающие люди - это тоже не совсем замечательно... Просто я абсолютно не спорю с тем, что вы понимаете, затем я собственно сюда и пришел,чтобы у вас проконсультироваться, но просто такая пытка, учитывая , что я сам собственно не особо могу понять что как мне охарактеризовать свой вопрос, и мне просто нужен простой алгоритм, как предоставил Kallisto, чтобы начать плясать и задавать дальнейшие вопросы... Я почему-то очень сомневаюсь товарищ Ипатьев, что вы не могли его написать p.s Kallisto спасибо... процесс пошел... Добавлено через 6 минут и 46 секунд Это не в коем случае не какое-то заявление, типа "от вас толку 0, только разговоры", Ипатьев, отдельное спасибо, ты мне уже не раз помогал, но сейчас просто я с трудом смог объяснить свою мысль. Добавлено через 11 минут и 22 секунды А переменная $page тут для чего используется? и что значит --$page? |
| Автор: youri 5.10.2009, 14:23 | ||
ну как бы название говорит за себя, м? ;) попробуй выполнить
и собственно, почему не посмотреть в мануале? |
| Автор: insy 5.10.2009, 14:26 |
| да, согласен, тупого включил, просто как это обычно бывает... сначала написал, потом подумал |
| Автор: Kallisto 5.10.2009, 14:44 | ||
Перечитайте внимательно, вникните в суть. А про --$page это уже надо курить мануалы. |
| Автор: insy 5.10.2009, 14:58 |
| Да я понял уже, спасибо! |
| Автор: Ипатьев 5.10.2009, 15:01 |
| Интересный вопрос пришел в голову. Какой процент пользователей языка РНР может составить алгоритм того или иного действия. Да и вообще понимает значение слова "алгоритм". Мне кажется, что не более 20%... |
| Автор: insy 5.10.2009, 15:20 |
| Хорошо же вы думаете о 80% пользователях форума. Может это вы немного не так понимаете данное слово. В моем понимании - это последовательность действий. И прося написать алгоритм постраничной разбивки, я имел именно описать последовательность действий, т.е что за чем делать, или другими словами "шаг за шагом". |
| Автор: Ипатьев 5.10.2009, 15:28 |
| Ну, хорошо ли, плохо ли, но до сих пор в этой теме не прозвучало ничего похожего на алгоритм. И я сомневаюсь, что прозвучит. Даже после того, как код будет написан и заработает. В этом-то и заключается проблема. |
| Автор: Ипатьев 5.10.2009, 16:33 | ||||||
| insy, правильно. Это последовательность действий, однозначно приводящая к какому-либо результату. Алгоритм можно составить для решения любой задачи. Один мой знакомый рассказывал, что просил на собеседовании составить алгоритм для посещения туалета. Очень редкий корреспондент мог с первого раза справиться, оставив штаны сухими. И только у одного алгоритм не давал сбой, если менялся пол у входящих данных. Все эти люди, при этом, без проблем пользуются туалетом. Отсюда вывод: составить алгоритм - непростая задача. И ее совсем не облегчает тот факт, что само действие человек совершает с легкостью. Одна сороконожка попыталась составить алгоритм переставления ног при ходьбе. С тех пор она не сделала ни шагу. В данном случае у нас должен быть алгоритм постраничного вывода. К примеру, СНАЧАЛА мы решаем, что хотим выводить первые 10 записец, потом следующие 10. И только после этого искать конкретный SQL запрос, который выполняет нужный шаг алгоритма. Алгоритм постраничного вывода человек не может не составить самостоятельно. Это совсем несложная задача. Разложить апельсины в кучки по три штучки может любой. Или найти страницу в многостраничной ведомости. Значит, он может и составить алгоритм. Но это надо уметь. алгоритм может быть представлен в виде блок-схемы, в виде программы на псевдоязыке, а может быть и написан на словах. Например:
это линейный алгоритм но в жизни встречаются и более сложные варианты, например, с циклом:
или с условным переходом
Алгоритм - это четкая программа действий, с помощью который ты, и в первую очередь - ты, а не компьютер, сможешь решить ту или иную задачу. Это нелегкое умение и не всем под силу. Но считается, что без владения им программистом стать невозможно. Вот даже интересно. Кто из читающих данный топик напишет алгоритм нахождения наименьшего из трех чисел? |
| Автор: MoLeX 5.10.2009, 16:49 | ||
|
| Автор: MoLeX 6.10.2009, 06:29 | ||
|
| Автор: youri 6.10.2009, 08:54 |
| раз MoLeX так ругается предлагаю продолжить http://forum.vingrad.ru/forum/topic-275566/anchor-entry1986821/0.html |
| Автор: sTa1kEr 6.10.2009, 09:17 | ||
Составление программы по шагам - это и есть составление алгоритма программы. MoLeX, т.ч. зря ты на Ипатьев'а накинулся, он, наверное, единственный кто не оффтопил в этой теме. |
| Автор: unicuum 8.10.2009, 12:31 |
Потому что мог. |
| Автор: insy 8.10.2009, 15:01 |
| Забавно вышло, описание самого топика только в 2-х постах... |
| Автор: Simpliest 8.10.2009, 20:47 | ||
Пффф, фееричный топик. Впрочем Molex только подтвердил слова Ипатьева :( Печально. |