Hello,
wie kann ich mit einer If-Abfrage prüfen, ob die MYSQL-Abfrage Leer oder "0" ist???
Beispiel:
if($ergebnis == 0)
{
$test = 'ist true';
}
else
{
$test = 'ist false';
}Gibt TRUE zurück, selbst wenn die MYSQL-Abfrage Leer ist!
Ich möchte gerne von Leer und "0" unterscheiden.
Mit empty() oder isset() funktioniert es leider nicht.
Da ist es auch schon zu spät.
Du könntest z.B. bereits im Query auf "is_null()" prüfen
http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html
http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html#operator_is-null
Da kannst Du dann bereits in der Abfrage mittels if() und ifnull()
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_ifnull
eine berechnete Spalte ausgeben, in der "NULL", "TRUE" oder "FALSE" als Ergebnis zurückgeben wird. Das sind dann aber im Resultset nur Literale.
Da Du ja weißt, dass Du sort keinen Text erwartest, kannst Du dir dieses Ergebnis in PHP dann wieder zurückwandeln mit einer kleinen Funktion, die ein "PHP-echtes" NULL, TRUE oder FALSE liefert.
select if(isnull(enabled
, 'NULL', if(enabled
= 0, 'FALSE', 'TRUE')) as status
from table
...
So ungefähr.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg