![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| NLspieler |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: нет Всего: 19 |
Пишу гостевую книгу. Точнее я ее уже полностью написал, но остался один не совсем решенный вопрос.
Дело в том, что есть одна функция, которая достаёт заданную страницу с сообщениями из базы данных. В ней используется такой запрос:
//$limit хранит LIMIT, зависящий от номера страницы Но тут мне понадобилась функция, которая вычисляет количество сообщений на заданной странице. Не долго думая, я таким образом модернизировал этот запрос:
Но этот запрос работает совсем не так, как я ожидал. Для первой (нулевой) страницы он возвращает число всех записей. Для последующих всегда возвращает ноль. Решил я проблему так, использовал запрос:
а результат пропустил через функцию mysql_num_rows() Такое решение оказалось рабочим, но очень не красивым. Зачем доставать данные, которые не используются?! Есть ли способ решения на уровне SQL, без использования php? Это сообщение отредактировал(а) NLspieler - 28.7.2009, 03:43 |
||||||
|
|||||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 2 Всего: 29 |
Количество сообщений на странице равно параметру $limit. Для крайней страницы можно пересчитать все сообщения, разделить на лимит, округлить до целых, умножить на $limit и найти между полученным значением и количеством всех сообщений разность - это и будет ответом.
|
|||
|
||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: нет Всего: 19 |
Написал не сложную функцию, не отнимающую лишних ресурсов БД
|
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 3 Всего: 37 |
Ну разумеется. Количество возвращаемых строк не превышает лимита. И просто счастье, что этот способ не сработал, поскольку, как я понял, ты хотел выполнять столько запросов, сколько страниц в гостевой. Но непонятно, зачем вообще понадобилась такая функция. Зачем нужно знать количество сообений на других страницах? |
|||
|
||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: нет Всего: 19 |
Если пользователь - админ, то тогда появляется кнопочка удаления сообщения возле сообщений. Если на нее нажать, происходит переход к срипту удаления. Ему передаются номер удаляемого сообщения и номер страницы с, которой оно удаляется. После удаления, происходит подсчет сообщений на странице, с которой удалилось сообщения, и если их больше нет, то происходит редирект на предидущую страницу. А если сообщения еще остались, то тогда происходит редирект на эту же страницу. Правда сейчас эта функция стала и правда не нужна, т.к. гораздо проще использовать функцию количества страниц. Если переданный номер страницы больше количества страниц, то редирект на предидущую (последнию) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |