MATCH AGAINST problem mit der Ausgabe

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

  • MATCH AGAINST problem mit der Ausgabe

    Ich probiere mich gerade an einem kleinen Suchscript und weiß nicht genau warum das Ergebnis mehrfach ausgegeben wird, obwohl in der Tabelle 'produkte' nur ein Datensatz vorhanden ist.
    Bei folgenden Beispiel gibt mir MySql 12 Ergebnisse aus. Das Suchwort kommt in in der Tabelle 'produkte' vor aber nicht in 'submenu'.
    Suchwort: "Mettwurst"

    Wenn das Suchwort in 'submenu' vorkommt, dann wird mir nur 1 Datensatz ausgegeben.

    PHP-Code:
            $selectquery "SELECT * FROM produkte, submenu WHERE MATCH (p_name,zutaten) AGAINST ('*$search*' IN BOOLEAN MODE)
    or MATCH (tree_name,con_head,con_text) AGAINST ('*
    $search*' IN BOOLEAN MODE)"
    or die("Was ist denn jetzt los!".mysql_error()) ; ; 
    Ich habe den Fehler schon eingegrenz. Beim Beispiel wird ja auch die Tabelle 'submenu' durchsucht in der 12 Einträge gespeichert sind. Daher kommt die mehrfach Ausgabe zustande.
    Ich frage mich aber warum das so ist.

    Hat jemand einen Tip für mich?

    Und eine zweite Frage hab ich noch zum
    AGAINST ('*$search*' IN BOOLEAN MODE)"
    Wenn ich nach z.B. Mettwurst suche, und nur 'mett' eingebe, dann wird 'Mettwurst gefunden. Wenn ich dagegn nur #wurst' eingebe, dann wird 'Mettwurst' nicht gefunden.
    Warum nicht?

    grüße

  • #2
    Re: MATCH AGAINST problem mit der Ausgabe

    Original geschrieben von Vankin
    Ich habe den Fehler schon eingegrenz. Beim Beispiel wird ja auch die Tabelle 'submenu' durchsucht in der 12 Einträge gespeichert sind. Daher kommt die mehrfach Ausgabe zustande.
    Ich frage mich aber warum das so ist.
    Weil du das Kreuzprodukt von beiden Tabellen bildest.
    Wenn ich nach z.B. Mettwurst suche, und nur 'mett' eingebe, dann wird 'Mettwurst gefunden. Wenn ich dagegn nur #wurst' eingebe, dann wird 'Mettwurst' nicht gefunden.
    Warum nicht?
    Weil's so definiert ist, dass du nur nach "mit xyz beginnenden" Wörtern suchen kannst, aber nicht nach "mit xyz endenden".
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: MATCH AGAINST problem mit der Ausgabe

      Original geschrieben von wahsaga
      Weil du das Kreuzprodukt von beiden Tabellen bildest.

      Weil's so definiert ist, dass du nur nach "mit xyz beginnenden" Wörtern suchen kannst, aber nicht nach "mit xyz endenden".
      Kreuzprodukt - wie soll ich das verstehen? Wie kann ich das verhindern? Warum bilde ich das Kreuzprodukt? Verstehe nur Bahnhof!
      Ich habe gerade noch mal im Forum gesucht und nur wenige Beiträge gefunden. Der Tenor war aber bei den Antworten, mit einem JOIN zu arbeiten. Macht das denn bei meinen zwei Tabellen sinn? Ich hab ja auch kein wirkliches Feld wo ich beide Tabellen verbinden kann.

      gibt es denn eine andere Möglichkeit nach xyz endenden Wörten zu suchen bzw. nach WOrtteilen?

      Zuletzt geändert von Vankin; 03.07.2007, 17:09.

      Kommentar

      Lädt...
      X