Komplexe DB Abfrage, wer weis einfach Lösung?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Komplexe DB Abfrage, wer weis einfach Lösung?

    Hey Leute!

    Ich bin grad dabei eine Suchfunktion für eine Webseite zu basteln. Habe jedoch ziemliche Schwierigkeiten mit der MySQL Abfrage, da diese die Datensätze in der DB nach Übereinstimmungen abfragen soll und ich einfach nicht weis wie ich die Abfrage gestalten soll. Nehmen wir mal als Beispiel:
    Ich habe in der DB verschidene Tutorials eingetragen. Diese sind mehreren Kategorien zugeordnet und sollen dementsprechend der Einstellung der Suche abgefragt werden. Die Schwierigkeit besteht darin dass die Tutorials multiple Einträge (SET Felder) enthalten und die Abfrage so aussehen muß dass ALLE von dem User gewählten Bedingungen erfüllt werden, und die restlichen aber ignoriert, verneint bzw. übersprungen (oder wie auch immer) werden. Nehmen wir also die DB, die wäre wie folgt aufgebaut:

    Name: Tutorial 1
    Sprache: PHP4 (SET FELD, ASP, CGI, PHP3, PHP4 PHP5, Python, SSI,ActionScript)
    Typ: Programmieren (SET FELD, Grafik, Programmieren, Flash)
    Grad: Einsteiger (SET FELD, Einsteiger, Fortgeschrittener, Profi)

    Name: Tutorial 2
    Sprache PHP4,PHP5 (SET FELD, ASP, CGI, PHP3, PHP4, PHP4, Pyton,SSI,ActionScript)
    Typ: Programmieren (SET FELD, Grafik, Programmieren, Flash)
    Grad: Profi (SET FELD, Einsteiger, Fortgeschrittener, Profi)

    Name: Tutorial 3
    Sprache PHP5 (SET FELD, ASP, CGI, PHP3, PHP4, PHP4, Pyton,SSI,ActionScript)
    Typ: Programmieren (SET FELD, Grafik, Programmieren, Flash)
    Grad: Fortgeschrittener,Profi(SET FELD, Einsteiger, Fortgeschrittener, Profi)

    Name: Tutorial 4
    Sprache: ActionScript (SET FELD, ASP, CGI, PHP3, PHP4, PHP4, Pyton,SSI,ActionScript)
    Typ: Programmieren,Flash (SET FELD, Grafik, Programmieren, Flash)
    Grad: Einsteiger (SET FELD, Einsteiger, Fortgeschrittener, Profi)

    Nun kommt ein User, der sagt, er möchte alle Tutorials aufgelistet haben, die für Einsteiger gedacht sind, und wo es ums Programmieren mit PHP 4 geht. Jetzt habe ich schon einiege Ansätze hinter mir, und jedesmal trat folgendes Problem auf:

    Ich gebe in der Suche an: Programmieren, PHP 4, Einsteiger. Nun sucht das Script und gibt mir folgendes aus:

    Tutorial 1, da es ums Programmieren für Einsteiger mit PHP 4 geht. Alle bedingungen Erfüllt.
    Tutorial 2, da es ums Programmieren mit PHP 4 geht, obwohl das Tutorial für Profis ist. Nur zwei Bedingungen erfüllt
    Tutorial 3, da es sich ums Programmieren handelt, obwohl das Tutorial für PHP 5 und Fortgeschrittene bzw. Profis ist. Nur eine Bedingung erfüllt
    Tutorial 4, da es sich ums Programmieren handelt, obwohl das Tutorial für Fortgeschrittene und ActionScript sowie nebenbei noch Flash ist. Ansich ist hier garkeine Bedingung erfüllt.

    Rein praktisch soll mir das Script aber nur Tutorial 1 ausgeben, da es als einzigstes alle 3 Bedingungen erfüllt. Ich habe schon mehrere Ansätze hinter mir, aber alles bisher vergeblich.

    Meine Frage ist dacher, wie muß die Tabelle bzw. die Abfrage für soeine Suchfunktion aussehen?

    Hoffe dass mir jemand von Euch weiterhelfen kann. Danke Euch schonmal!

  • #2
    wäre ENUM nicht besser als SET?

    wäre eine tabelle für die programmiersprachen, eine für den schwierigkeitsgrad eine für die katgerie und eine zum zuordnen zur noch zusätzlich anzulegenden tutorialtabelle nicht besser?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Aaahhh, habs nu endlich gelöst das Problem. Hab einfach die Abfrage umstrukturiert. ENUM Felder hatte ich vorher auch schon ausprobiert wobei es damit nicht so ganz wollte. Aber nu klappt das ja! ;-)

      Danke Trotzdem

      Kommentar

      Lädt...
      X