|
автор: Швейк (21.02.2005 в 22:03) |
|
| Добрый день,
разбираю в учебнике примеры и нашел интересную строку кода, про которую авторы умалчивают.
$query = "SELECT COUNT (*) FROM auth WHERE
name=' $name' AND
pass=' $password' ";
|
Что такое SELECT я понимаю, но что означает строка
SELECT COUNT (*) , т.е. непонятен именно COUNT (*) .
И для чего переменные $name и $password взяты в одинарные кавычки?
И чем одинарные от двойных отличаются?
Учится мне еще и учится....
С уважением,
Бравый Солдат. | |
|
|
|
|
|
|
|
для: Швейк
(21.02.2005 в 22:03)
| | COUNT() - это встроенная функция MySQL, используеться для подсчета записей в таблице, т.е. счетчик!
Если использовать двойные, то это приведет к ошибке или неправельному результату, можно вообще не использовать, но что будет, если параметр по которому идет выборка состоит из нескольких слов, все это опять же приведет к ошибке! | |
|
|
|
|
|
|
|
для: Швейк
(21.02.2005 в 22:03)
| | 1) COUNT - это внутренняя функция MySQL, которая возвращает число строк в таблице, в качестве аргумента можно указывать так же имена столбцов - в этом случае будет возвращено число строк, чьё значени для данного поля не равно NULL.
2) В одинарные кавычки значения берутся так как они являются строковыми и если они будут содержать пробелы - анализатору SQL-запроса будет достаточно сложно разобрать запрос.
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1893 | |
|
|
|
|
|
|
|
для: Швейк
(21.02.2005 в 22:03)
| | Count(*) подсчитывает количество строк в запросе.
>И для чего переменные $name и $password взяты в одинарные кавычки?
Поля name и pass текстовые, поэтому переменные взяты в кавычки (чтобы было коррекное сравнение).
А одинарные они потому ни потому что двойные уже используются при определении переменной query. | |
|
|
|
|
автор: Швейк (22.02.2005 в 00:29) |
|
|
для: glsv (Дизайнер)
(21.02.2005 в 22:28)
| | Т.е., правильно ли я понял, что по запросу
$query = "SELECT COUNT (*) FROM auth WHERE
name=' $name' AND
pass=' $password' ";
|
Выводится число, показывающее сколько в таблице auth имеется записей, в которых в столбце name содержиться значение переменной $name, а в столбце pass - значение переменной $password?
Я правильно Вас понял - речь идет именно о количестве записей, в которых есть это совпадение?
Учится мне еще и учится....
С уважением,
Бравый Солдат. | |
|
|
|
|
|
|
|
для: Швейк
(22.02.2005 в 00:29)
| | Да, именно так и этот запрос возвращает одно число. | |
|
|
|
|
|
|
|
для: Швейк
(22.02.2005 в 00:29)
| | да, выведет сколько в таблице записей в которых И name И pass равны И $name И $password | |
|
|
|
|
автор: Швейк (22.02.2005 в 10:36) |
|
|
для: Valeri
(22.02.2005 в 02:05)
| | Еще раз спасибо!
Тема может быть закрыта - Вы очень здорово мне все разъяснили.
С уважением,
Бравый Солдат. | |
|
|
|
|
автор: Швейк (28.02.2005 в 14:48) |
|
|
для: Швейк
(21.02.2005 в 22:03)
| | Опаньки, проблемы возникли при реализации этой функции.
Задача - вывести на экран количество записей в базе.
В MySQL этот код иделаьно работает:
SELECT COUNT(*) FROM applicants
|
Пытаюсь реализовать это в PHP
include "lib.php";
$dbConn = connectToDB();
$zapros = "SELECT COUNT(*) FROM applicants";
$otvet=mysql_query($zapros, $dbConn);
print "Всего в базе ";
print $otvet;
print "пользователей.";
|
В библиотеке lib.php расположена провенная функция connectToDB(), с ней все в порядке.
И вот когда я запускаю файлик в результате вместо количесвта строк вижу
Всего в базе Resource id #3 пользователей
Что бы это значило?
С уважением,
Бравый Солдат. | |
|
|
|
|
|
|
|
для: Швейк
(28.02.2005 в 14:48)
| | mysql_query() возвращает ссылку на результат запроса. Это еще не сами данные.
Вам нужно писать так:
<?
$zapros = "SELECT COUNT(*) FROM applicants";
$otvet_res=mysql_query($zapros, $dbConn);
$otvet = mysql_result($otvet_res,0);
print "Всего в базе ";
print $otvet;
?>
|
| |
|
|
|
|
автор: Швейк (28.02.2005 в 18:30) |
|
|
для: glsv (Дизайнер)
(28.02.2005 в 17:12)
| | Спасибо.
А что означает ноль в строке
$otvet = mysql_result($otvet_res,0);
|
Заранее благодарю.
С уважением,
Бравый Солдат. | |
|
|
|
|
|
|
|
для: Швейк
(28.02.2005 в 18:30)
| | Это номер строки в результатах запроса. Ведь не всегда у вас будет одна строка.
По ссылке описание этой функции
http://www.softtime.ru/dic/id_dic=127&id_group=2 | |
|
|
|
|
|
|
|
для: Швейк
(28.02.2005 в 14:48)
| | Функция mysql_query возвращает лишь дескриптор ответа базы данных, при помощи которого данные читаются одной из функций API к базе данных.
http://www.softtime.ru/group/id_group=2 | |
|
|
|