2012-04-24 3 views
0

Я видел много вопросов, подобных этому при переполнении стека, но я хочу знать, почему мой код не будет работать. Это делает совершенный (логический) смысл. Может ли кто-нибудь объяснить мне, какой код мне нужно написать, чтобы на самом деле заполнить заявление if, которое я имею в виду?Простой запрос и сравнение MySQL

$result = mysql_query("SELECT confirmed FROM usernames WHERE username = '$username' AND password = '$password'") 
if ($result==NULL) 
echo 'Failure'; 

Я пытаюсь это на php.

Примечание:

подтверждено в БД установлено значение NULL, так что окончательное эхо должно отображаться.

+0

Что не работает? Какую ошибку вы получаете? Чего вы ожидаете, что он вернется? Любые данные выборки? Требуется дополнительная информация. – anothershrubery

+3

$ result - это ресурс, а не поле//. В случае неудачи это неверно, иначе он содержит ресурс, который нужно извлечь, используя f.ex. mysql_fetch_array() –

ответ

1

Переменная $result содержит внутреннее представление результата запроса (возвращаемое функцией mysql_query()). Чтобы получить фактическое значение, вам нужно использовать другую функцию, например mysql_fetch_assoc() или mysql_result(). Пример такого вида:

$result = mysql_query("SELECT confirmed FROM usernames WHERE username = '$username' AND password = '$password'"); 
$conf = mysql_result($result, 0, 0); 
if ($conf == NULL){ 
    echo 'Failure'; 
} 
+0

Благодарим вас за код, но самое главное, спасибо за объяснение. Очень полезно. Я ценю это. – EGHDK

+0

Нет проблем, не забудьте принять :-) –

+0

Принято. 4 месяца спустя ... но принято. Хех. Еще раз спасибо. – EGHDK

0

Вам нужно взять строку!

$row = mysql_fetch_row($result); 
if($row[0] == NULL) 
{ 
    echo 'failure'; 
} 
0

Вы можете попробовать это ....

/*Add die for check if query has error */ 
/*Put Limit 0,1 for fetch only single row*/ 
$result = mysql_query("SELECT confirmed FROM usernames WHERE username = '$username' AND password = '$password' Limit 0,1") or die(mysql_error()); 

if($result){ 
    /*check if query return result or not according sql cond*/ 
    if(mysql_num_rows($result) == 0){ 
    echo "No Record Found"; 
    exit(); 
    } 
    /*Assign confirmed index value to a varriable $condirmed*/ 
while($row = mysql_fetch_assoc($result)){ 
     $confirmed = $row['confirmed']; 
    } 
    if($confirmed == 'NULL'){ 
     echo "Failure"; 
    } 
} 
Смежные вопросы