Tom: Prüfen ob MYSQL Abfrage LEER oder 0

Beitrag lesen

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

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bikers-lodge.com