horst: Suche programmieren

Hallo zusammen,

ich möchte gerne folgendes realisieren:

In der Datenbank (MySQL) stehen z.B. folgende Produkte:

Haarshampoo Sonnenschein für trockenes Haar  (Poduktnummer 1)
Haarshampoo Sonnenschein für fettiges Haar   (             2)
SuperStyle für trockenes Haar                (             3)

Wenn der Kunde "fettiges Haar Haarshampoo" sucht sollte folgendes
in ein Array geschrieben werden:

$array[1] = 2; (Produkt 1 hat 3 Übereinstimmungen)
$array[2] = 3;
$array[3] = 2;

So dass ich jetzt sortiert nach der besten Übereinstimmung die
Daten ausgeben kann... (die Ausgabe stellt keine Problem dar :)

Geht so was mit RegExp??

Viele Grüße vom
  Horst

  1. Hallo zusammen,

    ich möchte gerne folgendes realisieren:

    In der Datenbank (MySQL) stehen z.B. folgende Produkte:

    Haarshampoo Sonnenschein für trockenes Haar  (Poduktnummer 1)
    Haarshampoo Sonnenschein für fettiges Haar   (             2)
    SuperStyle für trockenes Haar                (             3)

    Wenn der Kunde "fettiges Haar Haarshampoo" sucht sollte folgendes
    in ein Array geschrieben werden:

    $array[1] = 2; (Produkt 1 hat 3 Übereinstimmungen)
    $array[2] = 3;
    $array[3] = 2;

    So dass ich jetzt sortiert nach der besten Übereinstimmung die
    Daten ausgeben kann... (die Ausgabe stellt keine Problem dar :)

    Geht so was mit RegExp??

    Geht schon, aber dafür gibt es was besseres bei MySQL: fulltext-index
    Beispiel dazu steht in der Dokumentation. Aber MySQL 4.x kannst Du auch nach boolschen Ausdrücken suchen wie "+trocken +Haar -fettig". Dann müssen trocken und Haar vorkommen, fettig darf nicht vorkommen.

    Gruß
    Reiner

    1. Hallo Rainer,

      Aber MySQL 4.x kannst Du auch nach boolschen Ausdrücken suchen wie "+trocken +Haar -fettig".

      Also einfach den Suchausdruck am Leerezeichen splitten?
      Wie baue ich den Suchausdruck dann dynamisch auf?
      Kann ich einfach eine Variable so füllen: $var ="+trocken +Haar";
      und die dann in den Query schreiben???

      Gruss
      Horst

      1. Hi,

        Hallo Rainer,

        Aber MySQL 4.x kannst Du auch nach boolschen Ausdrücken suchen wie "+trocken +Haar -fettig".

        Also einfach den Suchausdruck am Leerezeichen splitten?
        Wie baue ich den Suchausdruck dann dynamisch auf?
        Kann ich einfach eine Variable so füllen: $var ="+trocken +Haar";
        und die dann in den Query schreiben???

        lies Dir vielleicht mal das dazu durch:
        http://www.mysql.com/doc/en/Fulltext_Search.html

        Ich benutze sowas auch unter http://netp.ath.cx

        1. Hi Reiner,

          werde ich mir mal anschauen... leider dauert es noch einige Zeit
          bis wir eine neue MySQL-Version bekommen..

          Danke für Deine Hilfe

          Gruss vom Horst

          1. werde ich mir mal anschauen... leider dauert es noch einige Zeit
            bis wir eine neue MySQL-Version bekommen..

            Ich hatte mich schlecht ausgedrückt: Fulltext-index kann auch die 3.23, aber Boolean geht erst ab den 4er Versionen.

            1. Ich hatte mich schlecht ausgedrückt: Fulltext-index kann auch die 3.23, aber Boolean geht erst ab den 4er Versionen

              na dann schau ich mal, was wir so haben

              Gruß und einen schönen Tag :)

              Der Horst