1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Wildcard Abfrage mit MySQL

Dieses Thema im Forum "PHP & Co." wurde erstellt von Dadelu, 08.04.08.

  1. Dadelu

    Dadelu Reinette Coulon

    Dabei seit:
    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
     
  2. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    äh, vielleicht nicht mit AND sondern mit OR ?
     
  3. Dadelu

    Dadelu Reinette Coulon

    Dabei seit:
    06.07.05
    Beiträge:
    939
    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 :(
     
  4. hanebambel

    hanebambel Becks Apfel (Emstaler Champagner)

    Dabei seit:
    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 ;)
     
  5. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.245
    Dann wirst Du die SQL Anfrage dynamisch zusammenbauen müssen.
     
  6. Dadelu

    Dadelu Reinette Coulon

    Dabei seit:
    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'))
     
  7. Dadelu

    Dadelu Reinette Coulon

    Dabei seit:
    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!
     

Diese Seite empfehlen