Форум программистов, компьютерный форум, киберфорум
Наши страницы

MySQL

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.75
profid
67 / 44 / 3
Регистрация: 22.02.2011
Сообщений: 285
#1

Что возвращает оператор выборки SELECT - MySQL

07.09.2011, 15:26. Просмотров 4852. Ответов 16
Метки нет (Все метки)

Вот запрос:
PHP
1
$result = mysql_query("SELECT name FROM data WHERE login='$login' AND pass='$password'",$db);
вот код:
PHP
1
2
3
4
5
6
7
8
if($result=='true')
{if($prover>0)
{    
echo"Спасибо,что вошли $myrow[name]";}
else
{echo "Пользователь с таким логином и паролем не найден!";}}
else
{echo "Вход не удался";}
почему условие не срабатывает if($result=='true') хотя запрос проходит удачно,когда проделываю такое с оператором вставки insert,то всё работает,
когда пишу кстати так:
PHP
1
2
3
4
5
6
7
8
9
if($result=='false')
{echo "Вход не удался";}
else
{
if($prover>0)
{    
echo"Спасибо,что вошли $myrow[name]";}
else
{echo "Пользователь с таким логином и паролем не найден!";}}
всё срабатывает,почему когда пишу if($result=='true') не работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2011, 15:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Что возвращает оператор выборки SELECT (MySQL):

Ошибка при выполнении выборки SELECT - MySQL
$result = mysql_query("SELECT * FROM `пользователи` WHERE login=$newlog",$msconnect); $row = mysql_fetch_array($result); $newid = $row;...

Оператор SELECT и MAX MySQL - MySQL
Добрый вечер уважаемые. Есть в базе столбцы Логин Меил Пароль Имя и Очки. Функцией пытаюсь найти максимально высокие очки и пользователя....

Что значит оператор <> - MySQL
Здравствуйте, возник вопрос о смысле такого оператора, пример: xf_thread.thread_id &lt;&gt; '177850' AND xf_thread.node_id = '9' AND...

Как вытащить во вложенном SELECT запись, используя Текущий код внешнего SELECT? - MySQL
Есть такие таблицы, все поля описывать не буду, главное связи: Главная, тут просто все - свой код + 2 связи на таблицы классификаторы....

Php+mysql что будет если запрос SELECT выполнится быстрее чем UPDATE (в разных потоках) - MySQL
Ребята. Вот объясните мне пожалуйста. Может ли быть такое?: Предположим, что открылось 2 потока одновременно (2 юзера открыли...

Select в select или другой способ решения - MySQL
Необходимо написать запрос. В таблице Info хранится Имя пользователя. Связана таблица с таблицей Users по ID_Users. В таблице Chat....

16
Денис Н.
459 / 459 / 4
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 16:04 #2
потому что именно твое true - это строка, а не булин. И false то же самое

а в случае выборки из таблицы функция должна возвратить ресурс, а не булин
0
profid
67 / 44 / 3
Регистрация: 22.02.2011
Сообщений: 285
07.09.2011, 19:59  [ТС] #3
не особо понятно...
0
Денис Н.
459 / 459 / 4
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 20:12 #4
ты выбираешь данные из таблицы
PHP
1
$result = mysql_query("SELECT name FROM data WHERE login='$login' AND pass='$password'",$db);
следовательно в переменной result будет содержаться ресурс, а не булев тип (true, false).
1
profid
67 / 44 / 3
Регистрация: 22.02.2011
Сообщений: 285
07.09.2011, 20:43  [ТС] #5
а почему тогда в случае с false сработало
0
Денис Н.
459 / 459 / 4
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 21:00 #6
потому что функция возвращает:
  • ресурс в случае успеха запросов SELECT, SHOW, EXPLAIN, DESCRIBE
  • true во всех остальных успешных случаях
  • false в случае неудачи
Мануал почитай. Там всё это есть
0
DenQ
Комбинатор
978 / 244 / 6
Регистрация: 10.03.2010
Сообщений: 3,556
07.09.2011, 22:31 #7
Цитата Сообщение от profid Посмотреть сообщение
if($result=='true')
а это еще что?
Если хотите проверить значение переменной на истину, так и пишите ($var == true)
1
Денис Н.
459 / 459 / 4
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 22:36 #8
или просто
PHP
1
if($var)
0
DenQ
Комбинатор
978 / 244 / 6
Регистрация: 10.03.2010
Сообщений: 3,556
07.09.2011, 23:15 #9
Цитата Сообщение от Денис Н. Посмотреть сообщение
if($var)
А вот тут нет, этим мы проверяем наличие значения в $var, отличного от null, 0, false.
В $var имеем ресурс, при удачном подключении, а это уже что-то... значит if (true), а если подключения не будет, то и ресурса не будет, а значит и if (false).
0
Денис Н.
459 / 459 / 4
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 23:29 #10
false будет в любом случае
true будет срабатывать только при запросах, отличных от SELECT, SHOW, EXPLAIN, DESCRIBE.
При запросе SELECT if(true) работать не будет, потому что в переменной будет совсем иной тип данных.
Или я тебя не понял?
0
DenQ
Комбинатор
978 / 244 / 6
Регистрация: 10.03.2010
Сообщений: 3,556
08.09.2011, 00:31 #11
Цитата Сообщение от Денис Н. Посмотреть сообщение
false будет в любом случае
true будет срабатывать только при запросах, отличных от SELECT, SHOW, EXPLAIN, DESCRIBE.
При запросе SELECT if(true) работать не будет, потому что в переменной будет совсем иной тип данных.
Или я тебя не понял?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* подставь правильные праметры подключения 
 * и $var будет содержать ресурс, а это уже
 * что-то...
 * раскомменти поочередно строки ниже
 */
//$var = @mysql_connect();
//$var  = 12;   //if (true)
//$var  = 0;    //if (false)
//$var = null;  //if (fasle)
//$var = 'true';//if (true)
//$var = false; //if (false)
if ( $var ) {
    echo 'true';
} else {
    echo 'false';
}
Добавлено через 12 минут
Цитата Сообщение от profid Посмотреть сообщение
всё срабатывает,почему когда пишу if($result=='true') не работает
Потому что надо писать true без кавычек, а иначе это просто строка, содержащая слово true. А $var не равен строке содержащей слово true, вот вы и заходите в false, даже если подключение удалось.
1
Денис Н.
459 / 459 / 4
Регистрация: 17.08.2011
Сообщений: 1,489
08.09.2011, 00:31 #12
все, въехал, каюсь=)
0
DenQ
08.09.2011, 00:37
  #13

Не по теме:

Цитата Сообщение от Денис Н. Посмотреть сообщение
все, въехал, каюсь=)
Ничего бывает, главное немного опыта приобрел!

0
Денис Н.
08.09.2011, 00:40
  #14

Не по теме:

Я никогда так не проверял и поэтому даже в голову не приходило, что если что-то есть, то это уже тру. Типы скачут тока в путь

0
DenQ
Комбинатор
978 / 244 / 6
Регистрация: 10.03.2010
Сообщений: 3,556
08.09.2011, 00:42 #15
Цитата Сообщение от Денис Н. Посмотреть сообщение
Я никогда так не проверял и поэтому даже в голову не приходило, что если что-то есть, то это уже тру. Типы скачут тока в путь
Но если $var == 0, или null или false, тогда в "ветку true" не пойдет...
0
08.09.2011, 00:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2011, 00:42
Привет! Вот еще темы с ответами:

Можно ли сделать, что запрос "SELECT _WHERE _AND_IN" выбрал все записи? - MySQL
Имеется запрос, который выбирает записи по двум критериям и по списку значений SELECT * FROM tst_014_01_test WHERE name_camp = 'camp_1'...

Что возвращает cast оператор? - C++
template &lt;class T&gt; class A { operator T () const {return value;} private: T value; }

Что возвращает оператор return? - Java SE
довольно часто в книгах опускают оператор return, просто пишут,что он возвращает значение. а что тогда возвращает эти операторы? ...

Что возвращает MySQL если select ничего не находит - Java БД
Вопрос возник при написании серверной части на яве, которая должна проверить уникальность логина по бд. Насколько я себе представляю, при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru