Hello,
Nun möchte ich diese in einer SELECT Abfrage abfragen, wenn Sie Vorhanden, also grösser als 0 ist.
SELECT * FROM table WHERE (IF '$staat'>0 THEN staat='$staat')
doch irgendwas mache ich da falsch?
Das Where-Statement muss auch einen Inhalt haben, wenn es vorhanden ist.
Welchen Inhalt hat es denn bei Dir im Falle <= 0?
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if
So ginge es, der Datenbank die Last aufzubürden:
SELECT * FROM table WHERE staat = IF($staat > 0, $staat, staat
);
Aber da Du ja augenscheinlich bereits PHP benutzt, kannst Du das Where-Statement doch gleich mit PHP zusammenbauen und nur dann anfügen, wenn mindetens eine Where-Klausel vorhanden ist.
$where = '';
if($staat > 0) { $where .= 'staat
= $staat ';
if(strlen($where) > 0) {$where = 'WHERE '.$where; }
SELECT * FROM table $where;
Steht denn 0 oder NULL in dem Feld?
http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_ifnull
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg