Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подсчет кол-во строк

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
antobra
Отправлено: 14 Декабря, 2010 - 17:22:31
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




Сегодня у меня плохой день. Все что не пишу - сталкиваюсь с проблемой. На этот раз проблема в аутентификации((((

Есть код:

PHP:
скопировать код в буфер обмена
  1. $auth = mysql_query("SELECT COUNT(*) FROM table WHERE login='$_POST[login]' AND password='$_POST[password]' ");
  2.  
  3.  if (mysql_num_rows($auth) == 1) { echo "Добро пожаловать в аккаунт"; } else { echo "Ошибка"; }


Код простой, писал его тысячу и один раз! Но не могу понять в чем ошибка, поясню: меняю count(*) на * - скрипт работает, ставлю COUNT(*) и он позволяет входить всем подряд в аккаунт, т.е. выполняется TRUE, даже если ввести "rvjoehnvjnre", т.е. по базе не ищет кол-во найденных строк.

Что такое? Или просто лечь поспать))))
 
 Top
Uchkuma
Отправлено: 14 Декабря, 2010 - 17:27:32
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Вы пытаетесь посчитать количество количества ))
 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Декабря, 2010 - 17:28:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Лечь поспать... Мне помогает Радость
PHP:
скопировать код в буфер обмена
  1. mysql_query('SELECT COUNT(*) FROM `table` WHERE `login`= "'.$_POST['login'].'" AND `password` = "'.$_POST['password'].'"');

(Добавление)
Uchkuma пишет:
посчитать количество количества

Пусть даже и так Улыбка
 
 Top
Uchkuma
Отправлено: 14 Декабря, 2010 - 17:32:41
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




mysql_num_rows никогда не вернет 0 при таком запросе. Надо сравнивать
если на то пошло. Не забыв перед этим вернуть ряд результата запроса.
 
 Top
antobra
Отправлено: 14 Декабря, 2010 - 17:38:31
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




Uchkuma пишет:
mysql_num_rows никогда не вернет 0 при таком запросе. Надо сравнивать
если на то пошло. Не забыв перед этим вернуть ряд результата запроса.


Сейчас доделаю это и лягу спать.

Так, т.е. скрипт должен выглядеть так? :

PHP:
скопировать код в буфер обмена
  1. $auth = mysql_query("SELECT COUNT(*) FROM table WHERE login='$_POST[login]' AND password='$_POST[password]' ");
  2.  
  3. if ($auth['COUNT(*)']) {
  4. bla-bla
  5. }
  6.  

(Добавление)
или так:

$res2=mysql_query("SELECT COUNT(*) FROM base WHERE type='F'");
while ($row2=mysql_fetch_array($res2)){
echo $row2["COUNT(*)"];
}
 
 Top
CenapaTop
Отправлено: 14 Декабря, 2010 - 17:56:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 166
Дата рег-ции: Авг. 2009  


Помог: 1 раз(а)




SELECT COUNT(*) FROM ...
всегда возвратит 1 строку
 
 Top
OrmaJever Модератор
Отправлено: 14 Декабря, 2010 - 20:16:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




antobra пишет:
PHP:
скопировать код в буфер обмена
  1. $auth = mysql_query("SELECT COUNT(*) FROM table WHERE login='$_POST[login]' AND password='$_POST[password]' ");
  2.  
  3. if ($auth['COUNT(*)']) {
  4. bla-bla
  5. }

я извиняюсь но это просто ржач))

PHP:
скопировать код в буфер обмена
  1. $auth = mysql_query("SELECT * FROM table WHERE login='$_POST[login]' AND password='$_POST[password]' ");
  2. if(mysql_num_rows($auth) == 1) echo 'успешно';


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Uchkuma
Отправлено: 14 Декабря, 2010 - 21:34:20
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Нет смысла делать COUNT(*), если в последствии требуется выборка и других данных из этой же строки. Если авторизация прошла успешно вы будете делать второй запрос?
Для подсчета COUNT(*) будет быстрее, чем mysql_num_rows, только в том случае, если выборка идет безо всяких условий, если вы хотели это сделать для скорости.
 
 Top
JustUserR
Отправлено: 15 Декабря, 2010 - 12:33:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




antobra Достижение оптимального варината решния приведнной вами задачи анализа корректности авторизации пользователя на основе переданых им информационных полей - зависит от используемых впоследствии действий по обращению к серверу БД - в частности если указанный PHP-скрипт осуществляет исключительную проверку сущестования предоставленных элементов имени ползоватея и пароля - то вариант решения с использвание агренационной функции является более оптимальным - однако в качестве допустимого дополления целесообразно обеспечит представение имени стлобца выборки в виде alias-имени


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB