If-Abfrage in Where Klausel

kannaum

Mitglied
hallo,

Ich habe mal wieder ein Frage.
Ich möchte bei einer SELECT Abfrage in der WHERE Klausel eine if Bedingung einfügen.
Die If-Bedingung würde ich ka können:
PHP:
if ($name != '') {
$name = name, 
}
Aber wie kann man dass dann in eine SQl Abfrage einbauen?

mfg
 
Das weiß ich ja.
Aber ich will das so machen:
$sql = SELECT * FROM database WHERE if(name != '') name = $name, .....
mysql_query($sql);

Aber so wird das ja wahrscheinlich nicht gehen.

fmg
 
Hi,

@queicherius:
Da fehlt das mysql_close() ;)


Kannst du dein Vorhaben präziser erläutern?

PHP:
SELECT * FROM Tabelle WHERE name = '".$name"'


bo

PHP:
if ($name != '') {
$sql = SELECT * FROM Tabelle WHERE name = '".$name"'  ;
} else{
$sql = SELECT * FROM Tabelle;
}

mysql_query($sql);
 
Ich konkateniere meistens. Das ist eine sehr gute Technick denke ich für komplexere querys
PHP:
// Wichtig, auf die Leerzeichen achten beim konkatenieren
$query ="SELECT * FROM Tabelle ";
if ($name != '') { $query  .= "WHERE name =  '{$name}'  ;";
} 
mysql_query($query);
 
$sql = SELECT * FROM database WHERE if(name != '') name = $name, .....
mysql_query($sql);

Aber so wird das ja wahrscheinlich nicht gehen.

Richtig, so einfach geht es nicht.

Allerdings verstehe ich den Sinn deiner Query nicht.
Wenn du überprüfen willst ob eine Variable einen Inhalt hat, musst du das nicht die Datenbank machen lassen - das kann getrost PHP erledigen.

Erklär einfach mal in Worten was du machen möchtest. ;)
 
Ich will ja nicht nur schauen ob es leer ist sondern wenn es nicht leer ist soll es von der Datenbank geholt werden.


@bergonline:
Das würde nicht sehr gut sein, denn ich habe ca. 6 solche Sachen und das würde dann sehr viel Code bedeuten.

@TheKar:
Das klingt schon gut.
Da muss ich morgen mal schauen ob das geht.

mfg
 
@DeluXe Doch mit geschweitften Klammern. Es ist mehr als nur sinvoll absolut immer Klammer zu setzen, auch wenn sie nicht nötig sind!
Weitere Kommentare dazu auf dieser CodingstandardSeite. Bzw eine Seite welche entsprechende Empfehlungen gibt.
 
Zurück