nach ganzen wörtern in einem text suchen

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

  • nach ganzen wörtern in einem text suchen

    hallöle

    wie kann ich in einem beliebigen text nach GANZEN wörtern suchen?
    $abfrage = "SELECT * FROM search WHERE inhalt LIKE '%$suchwort%'";
    gibt auch alle ergebnisse aus, wo $suchwort ein teil eines wortes ist.
    gruss
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

  • #2
    Da sollte doch ein blank nach $Suchwort reichen, oder?
    Grüße
    Petra

    _____________________________
    Urlaub nur hier:
    http://www.landhaus-drosselweg.de

    Kommentar


    • #3
      Genau, es fehlen die Blanks:

      "SELECT * FROM tbl WHERE (BINARY field LIKE '% $suchwort %')"

      Das BINARY bewirkt zusätzlich, dass Groß/Kleinschreibung berücksichtigt wird.
      MfG
      Juggler

      Kommentar


      • #4
        Ach ja...

        Damit das dann funktioniert darf das Wort nicht am Anfang anfangen sondern davor müsste dann immer ein Leerzeichen stehen.
        Desweiteren findet man damit nur Wörter, die von einem Leerzeichen gefolgt werden d.h. sobald ein Satzzeichen auftritt wird das Wort nicht mehr gefunden...
        MfG
        Juggler

        Kommentar


        • #5
          Damit das dann funktioniert darf das Wort nicht am Anfang anfangen sondern davor müsste dann immer ein Leerzeichen stehen.
          Desweiteren findet man damit nur Wörter, die von einem Leerzeichen gefolgt werden d.h. sobald ein Satzzeichen auftritt wird das Wort nicht mehr gefunden...

          und genau das ist das problem.
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Dann bleibt dir vermutlich nichts anderes übrig, als die Daten auszulesen und dann mit RegExp zu prüfen.
            Falls jemand allerdings eine andere Lösung haben sollte würde auch mich das freuen...
            MfG
            Juggler

            Kommentar


            • #7
              Reguläre Ausdrücke kann man auch direkt bei der Abfrage verwenden:

              http://www.mysql.com/doc/R/e/Regexp.html

              bzw.:

              http://www.mysql.com/doc/S/t/String_...functions.html

              ( RLIKE bzw. REGEXP )
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Re: nach ganzen wörtern in einem text suchen

                <input class="feld" type="text" name="suche">
                <input class="button" type="submit" value="suchen" name="submit">



                $result = mysql_query (" SELECT * FROM Tabellenname WHERE DEINE_SPALTE_MIT_TEXT LIKE '%".addslashes($suche)."%'")

                Kommentar


                • #9
                  Lesen Archie Lesen
                  Das war nicht gefragt und übrigens auch schon längst bekannt.
                  [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                  [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                  [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                  © Harald Schmidt

                  Kommentar


                  • #10
                    Original geschrieben von Juggler
                    Ach ja...

                    Damit das dann funktioniert darf das Wort nicht am Anfang anfangen sondern davor müsste dann immer ein Leerzeichen stehen.
                    Desweiteren findet man damit nur Wörter, die von einem Leerzeichen gefolgt werden d.h. sobald ein Satzzeichen auftritt wird das Wort nicht mehr gefunden...
                    einfach vorm Vergleichen Leerzeichen vor und hinter den Feldinhalt einfügen:

                    "SELECT * FROM tbl WHERE (BINARY CONCAT(' ', field, ' ') LIKE '% $suchwort %')"
                    mein Sport: mein Frühstück: meine Arbeit:

                    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                    Kommentar


                    • #11
                      Natürlich ist das möglich...

                      Aber zumindest mir geht es so, dass ich nicht ausschliesslich Buchstaben und Leerzeichen verwende, sondern auch ab und an mal Satzzeichen setze. Desweiteren enthält die zu durchsuchende Spalte auch HTML In diesem Fall wären also RegExp genau das Richtige.

                      Ich hab nur noch nicht geblickt, wie das genau funktioniert

                      PHP-Code:
                      $pattern ".*[\\\\s]+$search[^a-zA-Z]{1}.*";
                      $query "SELECT * FROM tbl WHERE (BINARY field REGEXP '$pattern')"
                      Geht das so in etwa?

                      Ich weis... ausprobieren...
                      MfG
                      Juggler

                      Kommentar

                      Lädt...
                      X