2011-10-06 6 views
-3

J'ai un booléennes dans ma table, réglé sur 0 ou 1.pourquoi ce code php ne fonctionne pas?

$test = mysql_query("SELECT status FROM mydb WHERE email = '[email protected]'") or die(mysql_error()); 

if ($test == 0) { 
    echo "FF"; 
} elseif ($test == 1) { 
    echo "ON"; 
} 

Mais cela ne fonctionne pas, pourquoi? J'ai essayé le vrai et le faux, ça ne marche pas non plus.

+8

Dans quel sens cela ne fonctionne-t-il pas? Message d'erreur? Valeur d'écho inattendue? Quelle est la valeur dans '$ test' après cet appel' mysql_query'? –

+2

Le nom de votre _table_ est-il vraiment 'mydb'? – Czechnology

+0

comment vous pouvez tester la valeur de la variable sans obtenir la valeur de l'enregistrement, vous devez récupérer le résultat de votre requête par ** mysql_fetch_array ** ou ** mysql_fetch_object ** ce que vous voulez. – punit

Répondre

5

Vous n'êtes pas en fait le résultat récupérez.

$test = mysql_query("SELECT status FROM mydb WHERE email = '[email protected]'"); 
if (!$test) { 
    die(mysql_error()); 
} else { 
    $res = $test; 
} 
$row = mysql_fetch_assoc($res); 

var_dump($row); 
+0

Peut-être que OP voulait simplement '$ test' si la requête était exécutée? – hakre

0

$ test est juste les résultats de la requête. Vous voulez voir si vous obtenez une ligne, essayez ceci:

$result = mysql_query("SELECT status FROM mydb WHERE email = '[email protected]'")or die(mysql_error()); 

$row_count = mysql_num_rows($result); 

if($row_count == 0) 
{ 
    echo "FF"; 
} 
else if($row_count == 1) 
{ 
    echo "ON"; 
} 

Si vous avez besoin de connaître la valeur de status

$result = mysql_query("SELECT status FROM mydb WHERE email = '[email protected]'")or die(mysql_error()); 

while($data = mysql_fetch_assoc($result)) 
{ 
    if($data['status'] == 0) 
    { 
     echo "FF"; 
    } 
    else if($data['status'] == 1) 
    { 
     echo "ON"; 
    } 
} 
Questions connexes