dedlfix: PHP/ MySQL Select mit IF/ CASE

Beitrag lesen

Hi!

Gerne möchte ich folgenden Code erweitern. Mein Problem ist, dass die $_POST Variable manchmal leer ist, ist dies der Fall funktioniert die Abfrage nicht mehr. Habe ich eine Möglichkeit, die Abfrage so zu verändern, dass die where Funktion nur dan verwendet wird wenn die $_POST Variable einen Wert enthält?

Ja, aber das ist dann eine PHP-Geschichte, weil du das Statement mal mit und mal ohne WHERE schreiben musst.

$sql = "SELECT * FROM blog where thema ='" . $_POST['etwas'] . "'";

Zudem solltest du dich mit dem Thema Kontextwechsel beschäftigen, denn einen unbekannten Wert direkt in ein Statement einzufügen ist grob fahrlässig.

Ich weiss ich könnte einfach 2 Abfragen machen und mit PHP IF und ELSE trennen. Eine MySQL Lösung (Case/ If) wäre aber eleganter.

Nein, wäre sie nicht, denn du bekommst das WHERE nicht mit SQL weg. Du kannst nur auf LIKE umsteigen und im Falle von Leerstring ein % verwenden. Das macht die Sache aber nicht weniger kompliziert zu durchschauen.

Lo!