Форум программистов, компьютерный форум, киберфорум
Наши страницы
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/28: Рейтинг темы: голосов - 28, средняя оценка - 4.75
profid
67 / 44 / 5
Регистрация: 22.02.2011
Сообщений: 285
1

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

07.09.2011, 15:26. Просмотров 5114. Ответов 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
$result = mysql_query("SELECT * FROM `пользователи` WHERE...

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

Какие данные выдает оператор “SELECT
1)Какие данные выдает оператор “SELECT R1.A, R2.B FROM R1 NATURAL FULL JOIN R2...

Можно ли исключить из выборки результаты предыдущей выборки?
Не могу придумать как лучше решить следующую задачу: Есть таблица с неким...

Что значит оператор <>
Здравствуйте, возник вопрос о смысле такого оператора, пример: ...

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

а в случае выборки из таблицы функция должна возвратить ресурс, а не булин
0
profid
67 / 44 / 5
Регистрация: 22.02.2011
Сообщений: 285
07.09.2011, 19:59  [ТС] 3
не особо понятно...
0
Денис Н.
459 / 459 / 23
Регистрация: 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 / 5
Регистрация: 22.02.2011
Сообщений: 285
07.09.2011, 20:43  [ТС] 5
а почему тогда в случае с false сработало
0
Денис Н.
459 / 459 / 23
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 21:00 6
потому что функция возвращает:
  • ресурс в случае успеха запросов SELECT, SHOW, EXPLAIN, DESCRIBE
  • true во всех остальных успешных случаях
  • false в случае неудачи
Мануал почитай. Там всё это есть
0
DenQ
Комбинатор
978 / 246 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
07.09.2011, 22:31 7
Цитата Сообщение от profid Посмотреть сообщение
if($result=='true')
а это еще что?
Если хотите проверить значение переменной на истину, так и пишите ($var == true)
1
Денис Н.
459 / 459 / 23
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 22:36 8
или просто
PHP
1
if($var)
0
DenQ
Комбинатор
978 / 246 / 13
Регистрация: 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 / 23
Регистрация: 17.08.2011
Сообщений: 1,489
07.09.2011, 23:29 10
false будет в любом случае
true будет срабатывать только при запросах, отличных от SELECT, SHOW, EXPLAIN, DESCRIBE.
При запросе SELECT if(true) работать не будет, потому что в переменной будет совсем иной тип данных.
Или я тебя не понял?
0
DenQ
Комбинатор
978 / 246 / 13
Регистрация: 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 / 23
Регистрация: 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 / 246 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
08.09.2011, 00:42 15
Цитата Сообщение от Денис Н. Посмотреть сообщение
Я никогда так не проверял и поэтому даже в голову не приходило, что если что-то есть, то это уже тру. Типы скачут тока в путь
Но если $var == 0, или null или false, тогда в "ветку true" не пойдет...
0
Денис Н.
459 / 459 / 23
Регистрация: 17.08.2011
Сообщений: 1,489
08.09.2011, 00:43 16
это ясно
1
profid
67 / 44 / 5
Регистрация: 22.02.2011
Сообщений: 285
08.09.2011, 13:58  [ТС] 17
Цитата Сообщение от Денис Н. Посмотреть сообщение
false будет в любом случае
true будет срабатывать только при запросах, отличных от SELECT, SHOW, EXPLAIN, DESCRIBE.
При запросе SELECT if(true) работать не будет, потому что в переменной будет совсем иной тип данных.
Или я тебя не понял?
вот так всё понятно мне

Добавлено через 5 минут
Цитата Сообщение от DenQ Посмотреть сообщение

Потому что надо писать true без кавычек, а иначе это просто строка, содержащая слово true. А $var не равен строке содержащей слово true, вот вы и заходите в false, даже если подключение удалось.
понятно теперь
0
08.09.2011, 13:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2011, 13:58

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

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

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


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

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

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