• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Wildcard Abfrage mit MySQL

Dadelu

Reinette Coulon
Registriert
06.07.05
Beiträge
939
Hallo Zusammen

Ich sitze vor einem Problem und vor lauter Bäume sehe ich den Wald nicht mehr :(

Ich bekomme als Parameter von einer Seite 3 Variabeln. Diese können abgefüllt sein, müssen aber nicht.

Nun, wie erstelle ich ein entsprechende SQL - Abfrage?
Ich habe an sowas gedacht:
Code:
SELECT irgendwas FROM irgendwo WHERE SPALTE1='%$PARM1%' AND SPALTE2='%$PARM2%' AND SPALTE3='%$PARM3%'

Aber irgendwie funktioniert es nicht... Ich denke es liegt daran, dass man ja nicht zwingend etwas auswählen muss. Intepretiert das dann SQL richtig, dass er eine Art * Abfrage für diese Spalte macht?

Hiiilfe :)

Gruss, Dadelu
 
äh, vielleicht nicht mit AND sondern mit OR ?

Das würde die Logik verändern ;) Ich will ja, dass wenn ich 3 Sachen anwähle, auch diese 3 Parameter als Kriterien genommen werden.

Vieleicht habe ich die eigentliche Logik zu wenig erklärt..

Der Benutzer kann aus 3 DropDown Menus sachen selektieren. Bei jedem Menu kann er die Option Alle auswählen. Aber wenn er jetzt beim ersten Alle selektiert und bei den restlichen 2 einen anderen Wert, soll eben entsprechend die SQL Abfrage alle Resultate bringen, welche die 3 Bedinungen erfüllen.. Ach ist kompliziert :(
 
Mal mit LIKE versucht??

Code:
SELECT irgendwas FROM irgendwo WHERE SPALTE1 LIKE ('%$PARM1%') AND SPALTE2 LIKE ('%$PARM2%') AND SPALTE3 LIKE ('%$PARM3%')

CU Jan ;-)
 
Hmm ja habe ich versucht. Das komische isch, wenn ich das Query mittels phpMyAdmin absetze funktioniert es, aber aus der Webseite heraus nicht.

Sieht jemand den Unterschied? :)

phpMyAdmin Variante:
Code:
SELECT `datum`, `benutzerFRMD`, `aktionFRMD`, `anzahl` FROM `ERFASSUNGEN` WHERE `benutzerFRMD` LIKE(1) AND `kunde` LIKE(1) AND `aktionFRMD` LIKE('m4321') AND((`datum` >= '00.00.00') AND (`datum` <= '99.99.99'))

PHP - Variante
Code:
SELECT datum,benutzerFRMD,aktionFRMD,anzahl,kunde FROM ERFASSUNGEN WHERE benutzerFRMD LIKE (1) AND kunde LIKE (1) AND aktionFRMD LIKE ('m4321') AND ((datum >= '00.00.00') AND (datum <= '99.99.99'))
 
Problem gelöst.

Syntax mässig war alles richitg. Schlussendlich hat sich irgendwo im Query String ein . eingeschlichen und der hat dann die Abfrage "abendieren" lassen mit einem SQL - Fehler.

Trotzdem Danke für die Hilfe!