• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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
 

.holger

Borowitzky
Registriert
13.09.04
Beiträge
8.970
äh, vielleicht nicht mit AND sondern mit OR ?
 

Dadelu

Reinette Coulon
Registriert
06.07.05
Beiträge
939
ä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 :(
 

hanebambel

Becks Apfel (Emstaler Champagner)
Registriert
31.08.04
Beiträge
333
Mal mit LIKE versucht??

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

CU Jan ;)
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
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.
Dann wirst Du die SQL Anfrage dynamisch zusammenbauen müssen.
 

Dadelu

Reinette Coulon
Registriert
06.07.05
Beiträge
939
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'))
 

Dadelu

Reinette Coulon
Registriert
06.07.05
Beiträge
939
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!