| |
|
|
| | Здравствуйте. Я писал раньше на PHP, а сейчас по работе пришлось заняться Perl. Но не в этом суть. У меня такая проблемка. Создаю систему сообщений, вроде yandex. Из какой-то БД беру данные и выкидываю их в список. Но мне надо сделать так, если данных (сообщений) будет свыше допустим 10, то надо перейти на следующую страницу. Как это сделать. Подскажите пожалуйста сам алгоритм действий.
Проблемка заключается в том, что данные берутся из запроса и затем в цикле wile() обрабатываются и сразу выводятся в таблицу. Но цикл обрабатывает весь запрос, а мне надо чтобы сначала 10, затем если нажата кнопочка или ссылка перейти на следующие 10 и т. д. Пытался сделать в цикле wile() еще один цикл типа for() но база сразу переполнилась, произошел какой то цикл не заканчивающийся. Как быть, подскажите или пошлите где почитать как это сделать? | |
| |
|
|
|
| |
|
|
| |
для: cheops
(29.06.2006 в 16:19)
| | | Огромное спасибо. Это именно то что мне надо. Но подскажите пожалуйста что за функция intval() в PHP, а то я уже стал забывать PHP. Если только мои догадки - это наверное округление числа? | |
| |
|
|
| |
|
|
| |
для: diman
(30.06.2006 в 09:08)
| | | нет, она возвращает значение переменной, приведенное к типу integer ...
ну, практически округляет :) ... (при больших значениях конечно нет... )
http://ru.php.net/manual/ru/function.intval.php | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(30.06.2006 в 09:10)
| | | Не подскажите ли что за значение (или как выразиться лучше) в селекте присутсвует такая вещь как Limit? Что это такое и с чем его едят? Так как у меня на него SQL ругается, не знает что это такое. | |
| |
|
|
| |
|
|
| |
для: Diman
(30.06.2006 в 11:12)
| | | Это указывает сколько максимум записей нужно выбрать - лимит | |
| |
|
|
| |
|
|
| |
для: Diman
(30.06.2006 в 11:12)
| | | MySQL скорее всего все же знает что эт такое :))
LIMIT offset, rows
Ключевое слово LIMIT сообщает серверу MySQL о выводе количества запросов (параметр rows) начиная с позиции offset - цитата из книги "Самоучитель PHP 5" :))
иначе говоря выбрать от сюда, до сюда :))
в итоге rows - offset = количество выбранных рядов | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(30.06.2006 в 11:19)
| | | С этим ясно, но SQL всё равно ругается. Может где не там пишу, помогите пожалуйста.
Или наверное есть какая-то замена в SQL этому слову. TOP не пойдет, т. к. он выбирает только одно значение, а мне надо сделать выбор.
"Select id_theme, name, time_, uid_to, uid_from
From themes LIMIT $start, $num
Where uid_from=$uid" | |
| |
|
|
| |
|
|
| |
для: Diman
(30.06.2006 в 11:24)
| | | А что за сервер? Явно ведь не MySQL? | |
| |
|
|
| |
|
|
| |
для: Diman
(30.06.2006 в 11:24)
| | | надо писать LIMIT в конце, после WHЕRE ... | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(30.06.2006 в 11:44)
| | | Это SQL. А там это не работает | |
| |
|
|
| |
|
|
| |
для: Diman
(30.06.2006 в 12:00)
| | | SQL разные бывают ... Mysql,Postgresql,MsSql и т.д. ... попробуй лимит вконце написать..
Select id_theme, name, time_, uid_to, uid_from
From themes Where uid_from=$uid
LIMIT $start, $num
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(30.06.2006 в 11:44)
| | | Совершенно справедливо. | |
| |
|
|
| |
|
|
| |
для: Trianon
(30.06.2006 в 12:15)
| | | А вы думаете не пробовал? А SQL не знаю точно какой. Могу сказать только что работаю с IB Expert под сервером FireBird. Может быть тогда ISQL получается. | |
| |
|
|
| |
|
|
| |
для: Diman
(30.06.2006 в 12:35)
| | | Дело в том, что LIMIT есть далеко не во всех реализациях SQL, т.к. эта конструкция нарушает структурную целостность реляционной модели. Но поскольку на практике с ограничением выборки приходится сталкиваться везде, то пути обхода нужно искать именно для своего диалекта языка. Для oracle, например, это вложенный запрос с ограничением по rowid. | |
| |
|
|