Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2009, 13:51   #1
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию count(*) as

$a=mysql_query("select count(*) as rec from database");
объясните мне, пожалуйста, зачем тут as rec ?
dedyshka вне форума Ответить с цитированием
Старый 26.12.2009, 14:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

as rec - это Вы присваиваете возвращаемому запросом значению выражения имя (в данном случае rec - это будет количество записей в таблице database)

потом можно обратиться к этом полю по имени:
$f=mysql_fetch_array($a);
$AllCountRecord = $f[rec];

Последний раз редактировалось Serge_Bliznykov; 26.12.2009 в 15:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2009, 01:25   #3
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию

ага, спасибо..значит

PHP код:
$a=mysql_query("select count(*) as rec from database");
$b=mysql_fetch_row($a);
$rec=$b[0]; 
сначала считает кол-во записей, потом делает массив из последней записи и в $rec сохраняет нулевой элемент этого массива ?
dedyshka вне форума Ответить с цитированием
Старый 27.12.2009, 11:20   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

AS = ПСЕВДОНИМ... вот и все!
ADSoft вне форума Ответить с цитированием
Старый 27.12.2009, 12:48   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

dedyshka
В приведённом Вами примере as rec не нужен.
Arigato вне форума Ответить с цитированием
Старый 28.12.2009, 01:04   #6
dedyshka
Пользователь
 
Регистрация: 10.11.2009
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
dedyshka
В приведённом Вами примере as rec не нужен.
спасибо.

остался последний вопрос..альтернативная функция тому, что я написал - mysql_num_rows, но пишут, что её нельзя использовать, так как нежелательно выполнять запрос
PHP код:
select from database 
Почему ?
dedyshka вне форума Ответить с цитированием
Старый 28.12.2009, 09:48   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
что её нельзя использовать, так как нежелательно выполнять запрос
ну почему же - "нельзя"?! можно.. НО НЕ НУЖНО!
дело в том, что когда вы выполняете запрос select count(*) from Table - то запрос выполняется на сервере, и Вам отдаётся ОДНО значение - количество записей в таблице. И даже для таблицы, имеющих миллионы записей, подобный запрос отработает мгновенно!
если же Вы выполняете select * from table
то мало того, что запрос вернёт ВСЕ ИМЕЮЩИЕ ПОЛЯ (а в таблице может быть очень много полей, включая BLOB поля...), и, главное, запрос вернёт ВСЕ ЗАПИСИ. И, если их миллионы, то передаваться они будут в запрос (программу, выполнившую запрос) весьма не быстро! и, если Вы хотите узнать количество записей в таблице, то эти данные там НЕ НУЖНЫ!
Вот именно поэтому так делать не надо!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.12.2009, 14:59   #8
dubina
 
Регистрация: 16.08.2009
Сообщений: 3
По умолчанию

as используется когда много таблиц
dubina вне форума Ответить с цитированием
Старый 28.12.2009, 15:53   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
as используется когда много таблиц
Вы не правы! к количеству таблиц AS прямого отношения не имеет!

1) as - это ПСЕВДОНИМ (он же АЛИАС, он же ALIAS)
то есть мы можем таблице, запросу, выражению или полю присвоить имя. Используется это и для упрощения кода и для того, чтобы можно было выбрать в запрос несколько полей с одним именем из разных таблиц/запросов!

2) если Вы возьмёте на себя труд прочитать обсуждение выше в этом топике, то поймёте, что это уже разобрали и автор темы вроде бы уже понял, для чего было написано count(*) as rec ...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Count. Firebird artemavd БД в Delphi 21 12.09.2010 12:00
Использование атрибутов count и sum Dianaa Помощь студентам 3 16.09.2008 22:51
count(*) antoniosm БД в Delphi 9 12.09.2007 13:06
функция запроса COUNT Таня84 БД в Delphi 1 10.06.2007 15:49