Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Количество выбранных полей 
:(
    Опции темы
korob2001
Дата 12.1.2006, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет всем!
Пишу сейчас гостевую книгу, а точнее разбивку по сраницам.
Допустим я делаю запрос вида:
Код

SELECT * FROM TableName ORDER BY DateAdd DESC

Можно ли как-то узнать сколько выбрано полей по данному запросу, не проходя их в цикле? Думал сначала ориентироваться по Id, но в этой гостевой администратор и модераторы могут удалять записи, потому Id не будет последовательными числами.

Это сообщение отредактировал(а) korob2001 - 12.1.2006, 08:37


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Kesh
Дата 12.1.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 15
Всего: 54



Код

SELECT COUNT(id) FROM TableName ORDER BY DateAdd DESC



--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Gold Dragon
Дата 12.1.2006, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Код

$r = mysql_query("SELECT * FROM TableName ORDER BY DateAdd DESC");
$a = mysql_num_rows($r);
echo $a;



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
boevik
Дата 12.1.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 2
Всего: 35



Цитата(korob2001 @ 12.1.2006, 08:36 Найти цитируемый пост)

Можно ли как-то узнать сколько выбрано полей по данному запросу, не проходя их в цикле?

Так полей или записей?



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 12.1.2006, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

Так полей или записей?

Мне нужно узнать кол-во сообщений в гостевой книге.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Illuminaty
Дата 12.1.2006, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

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



Тогда, как Kesh написал делай
PM MAIL ICQ   Вверх
korob2001
Дата 12.1.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Большое спасибо.
Вот это:
Код

SELECT COUNT(id) FROM TableName ORDER BY DateAdd DESC

то, что было нужно. Млин а я раньше делал разбивку по страницам, в цикле. ;)))) Всё тоже нормально работало, но не получалось выводить страницы сверху сообщений, только после цикла. Теперь есть и вверху и внизу.
Ещё раз всем спасибо, за помощь.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Bose
Дата 13.1.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 1
Всего: 51



Цитата(korob2001 @ 12.1.2006, 19:21 Найти цитируемый пост)

Млин а я раньше делал разбивку по страницам, в цикле. ;))))


для разбивки по страницам я бы порекомендовал использовать SQL. Оператор LIMIT позволяет ограничить количество возвращаемых данных. Например
Код

SELECT * FROM TableName ORDER BY DateAdd DESC LIMIT 0,30

выдаст 30 первых записей(согласно твоей сортировке), а
Код

SELECT * FROM TableName ORDER BY DateAdd DESC LIMIT 30,60

выдаст следующие 30 записей (с 30й по 60ую).

Правда, при выполнении запроса MySQL всё-равно будет прочёсывать всю таблицу, чтобы отсортировать сообщения по дате. smile
PM MAIL WWW Skype   Вверх
Бонифаций
Дата 13.1.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



Цитата(Kesh @ 12.1.2006, 09:24)
Код

SELECT COUNT(id) FROM TableName ORDER BY DateAdd DESC

order by dateadd desc не нужен. нечего сортировать, результат будет одно число


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Kesh
Дата 19.1.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 15
Всего: 54



Бонифаций да знаю я... smile
Но все равно, спасибо за поправку... smile Туплю, бывает...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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