Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL: intelligente Suche programmieren

Einklappen

Neue Werbung 2019

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

  • SQL: intelligente Suche programmieren

    hallo, ich will mit PHP und sql eine "intelligente" suche in meine Seite einbauen, bis jetzt habe ich das :

    PHP-Code:
    $result=$pdo->prepare("SELECT * FROM blog WHERE blogtext LIKE '_".str_replace(' ''_'$_POST["suchbegriff"])."_' OR title LIKE '%".str_replace(' ''_'$_POST["suchbegriff"])."%' ORDER BY id DESC LIMIT 20"); 
    damit erhalte ich dann schon gute Ergebnisse, doch wenn z.B. ein Titel "Windows 7: cmd erklärt" lautet und ich nach "Windows 7 cmd" suche erhalte ich nicht diesen Blogeintrag. wieso ? habe dazu extra das str_replace mit _-Platzhalter eingebaut, half aber nicht. wie genau muss ich das verbessern ?

  • #2
    Verwende die Volltextsuche von MySQL:

    Code:
    CREATE TABLE Posts (
        id int(11) unsigned NOT NULL AUTO_INCREMENT,
        content TEXT NOT NULL,
        PRIMARY KEY (id),
        FULLTEXT KEY (content)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Suche z.B. per:

    Code:
    SELECT
        id,
        content,
        MATCH(content) AGAINST('foobar bar') AS relevance
    FROM
        Posts
    WHERE
        MATCH(content) AGAINST('foobar bar')
    ORDER BY
        relevance DESC

    Kommentar


    • #3
      WerWoPHP Du hast du übrigens eine schöne SQL-Injection Lücke.

      MOD: Verschoben von PHP-Einsteiger
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar

      Lädt...
      X