Problem bei MySQL-Befehl
Mika
- datenbank
Hallo Zusammen,
ich rätsel gerade an dem Fehler folgender MySQL-Abfrage rum:
$query = "SELECT *, (SELECT status FROM tx\_phaenderungen\_status
WHERE tx_phaenderungen_entries.processingStatus = tx_phaenderungen_status.id) AS status FROM tx\_phaenderungen\_entries
WHERE deleted
=0 AND revision
LIKE '%$_POST[SearchFlag]%' OR status
LIKE '%$_POST[SearchFlag]%'";
Es geht darum das in dem Feld "processingStatus" der Tabelle tx_phaenderungen_entries nur eine Ziffer steht (z.B.)
In der zweiten Tabelle tx_phaenderungen_status steht die Bedeutung der Ziffern (z.B. id: 0 ; status: in Arbeit).
Die Zusammenführung der beiden Tabellen funktioniert.
Ich habe mir eine kleine Suchfunktion gebastelt, in der oben aufgeführte MySQL Abfrage ausgeführt wird.
Aber es schlägt aufgrund folgendem fehl:
status
LIKE '%$_POST[SearchFlag]%'";
Weiß jemand wie es richtig lauten muss?
yo,
bitte immer nur die reine query angeben, nicht irgend welchen programmcode, wenn es nur um eine sql-abfrage geht.
Ilja
Du hast brav das oberste Gebot von Foren eingehalten:
Geht es um einen Fehler, erwähne in deinem Beitrag niemals die Fehlermeldung!
Wie dem auch sei.
probiers mal mit
status
LIKE '" . %$_POST['SearchFlag'] . "%'";
So wie ich PHP kenne, häts dir eigentlich ein paar Warnings
gruß
ma
Hi,
Wie dem auch sei.
probiers mal mit
status
LIKE '" . %$_POST['SearchFlag'] . "%'";So wie ich PHP kenne, häts dir eigentlich ein paar Warnings
- Fehlermeldungen an den Kopf werfen müssen.
Noe, in dem Fall wohl nicht. PHP "merkt" ja nicht mal, dass da der Inhalt einer Variablen eingebunden werden soll - es betrachtet das ganze als reinen Text, also landet das auch so in der ausgefuehrten Query.
Mit simpelsten Debug-Strategien, wie bspw. einer Kontrollausgabe des generierten Statements, haette das dem Frager allerdings auch gut selber auffallen koennen. Und btw., ueber SQL Injections und was man dagegen tut, sollte er sich auch informieren.
MfG ChrisB