Suchfunktion

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

  • Suchfunktion

    Tach zusammen,

    Ich habe folgendes Problem.
    Ich möchte aus einer Tabelle (bzw. aus einem Tabellenfeld verschiedene Begriffe raussuchen.

    Beispiel : Das Tabellenfeld nennt sich "laender"

    In diesem Feld befinden sich die Länder (Australien Argentinien Deutschland Belgien Frankreich usw.)

    Die sind über eine Mehrfachauswahl mit "implode" in dieses Feld eingetragen worden.

    Jetzt möchte ich in einem Suchfeld Zum Beispiel Australien und Belgien suchen. Also gebe ich in meinem Suchfeld die Begriffe AUSTRALIEN BELGIEN ein.

    Als Ergebnis soll mir die Datenbank alle Daten ausgeben, die entweder nur AUSTRALIEN, nur BELGIEN oder AUSTRALIEN und BELGIEN rausgibt.

    So sieht bislang meine Suchfunktion aus

    PHP-Code:
    SELECT FROM mitglieder WHERE laender LIKE '%$suchbegriff%'
    Es wird kein Ergebnis angezeigt, da mit dieser Suchfunktion der gesamte String AUSTRALIEN BELGIEN gesucht wird. Wenn ich aber nur AUSTRALIEN oder BELGIEN eingebe, dann erscheint der gewünschte Ausdruck.

    Wie müsste meine Suchfunktion lauten, damit ich dann auch wirklich eine Korrekte Aussgabe erhalte?

  • #2
    du musst dein Suchbegriff in mehrere Wörter auftrennen und einzeln in die Where-Klausel einbauen, etwa mit explode, Bsp

    $suchbegriff = explode(...);

    ... where col like '%".$suchbegriff[0]."%' or col like '%".$suchbegriff[1]."%' or ... ";

    am bestens in einer Schleife zusammenbauen

    Kommentar


    • #3
      Schön und gut, aber was steht in explode() und was bedeutet der Begriff oder die Funktion "con"?. Davon habe ich noch nie was gehört.

      Und noch eine Frage zum ARRAY. Wie kann ich herausfinden, ob ich nur 2, 3 oder gar 5 Begriffe suche.

      PS: Ich bin vielleicht nicht immer ganz der hellste

      Kommentar


      • #4
        col steht für column, d.h. du sollst mit dem Spaltennamen in deiner Tabelle ersetzen

        in explode sollst du den von User eingetippten Suchbegriff eintippen, als Separator nimmst du ... na was wohl?

        count wird dir dabei helfen, die Dimension des Arrays zu bestimmen

        Kommentar


        • #5
          Bin schon mal weiter und kann die Wortanzahl herausfinden. Jedoch mit der Schleife habe ich so mein Problem

          So sieht meine Abfrage aus:
          PHP-Code:
          $suchbegriff_neu count(explode(" ",$suchbegriff)); 
          Hier wird die korrekte Anzahl der Wörter angezeigt. Jetzt müsste ja eigentlich ein Schleife kommen, nur da hakt es. Wie also funktioniert die Schleife, damit automatisch die anzahl des Arrays ausgegebn werden kann.
          PHP-Code:
             $result=mysql_query("SELECT * FROM family WHERE family_country like '%".$suchbegriff[]."%'"); 
          Nur jetzt eine Frage zu meinem Suchbegriff. Wenn ich also Australien und Belgien eingebe, dann müsste das System auch zwei Suchbegriffe daraus machen. Vielleicht ist die Frage blöd, aber macht das System aus dem ARRAY $suchbegriff[0] in diesem Fall automatisch Australien und im zweiten Array suchbegriff[1] dann auch automatisch Belgien?

          Kommentar


          • #6
            Probier doch einfach mal mit Testausgaben rum

            PHP-Code:
            $suchbegriff_neu count(explode(" ",$suchbegriff));
            echo 
            "<pre>";
            var_dump($suchbegriff_neu);
            echo 
            "</pre>"
            Dann siehst wie deine Eingaben aufgesplittet werden, sowas hilft immer ein wenig zu verstehen was das Script macht

            Gruss
            Quetschi
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar

            Lädt...
            X