suchfunktion per Datenbank

  • Hallo zusammen,

    würde gerne in meine Webseite ein Suchfunktion einbinden.
    Meine Inhaltstexte sind alle in einer Datenbank abgespeichert sprich ich müsste die Suchfunktion ja so machen, das er in der Datenbank nach dem Entrsprechendem Suchwort sucht.

    Nur leider hab ich keinen Plan wie ich das machen kann!?!? :(

    Habt Ihr da vielleicht eine Idee für mich?

    Vielen Dank

  • Man könnte es vielleicht mit str_replace() machen.

    Du liest einfach alle Texte aus der Datenbank aus.

    $abfrage = "SELECT * FROM tabelle";
    $ergebnis = mysql_query($abfrage) OR die(mysql_error());
    $suchergebnis = array();
    while($row = mysql_fetch_array($ergebnis)) {
    if(str_replace($suchbegriff,$suchbegriff,$row[spalte])) {
    $row[spalte] = $suchergebnis[];
    }
    }

    $suchergebnis[] ist dann dein... Suchergebnis :)

    Ich bin mir ziemlich unsicher aber so könnte es evtl. funktionieren...
    bin mir an der Stelle: $row[spalte] = $suchergebnis[]; recht unsicher... aber probier einfach mal :)

    EDIT: Hab nochmal was editiert... :D

    EDIT: Ok, so funktioniert es nicht ganz aber es ist schonmal ein Denkansatz bis wer antwortet der Ahnung hat!:P

  • Danke für deinen Tipp

    habe es jetzt so gemacht:

    allerdings gibt er mir nun sobalt er das suchwort irgendwo in der DB findet alle inhalte von allen tabellen aus!??????

  • was möchtest du den eine fulltext suche ?

    immer diese LINKE lösungen :cry:

    mit der LIKE Klausel ist eine fulltext suche nicht möglich

    um alle spalt leicht zu durch suchen ist die Match.. Against function optimal

    mit like ist es uzmständlich und unprofessionel die Like klausel wird nur verwendet um zb ein titel oder einen autor zu suchen aber nicht für wörter in einem text wo her habt ihr das nur das man eine suche mit der like klausel macht ich verstehe das nicht !
    diese unwissen heit !

    durch die Like methode wird der code nur sinnlos überlagert, und die Performace leidet unter dieser unwissenheit !

    schau mal hier
    http://dev.mysql.com/doc/refman/5.1/de/fulltext-search.html

    so macht man das richtig, nicht diesen anfänger müll !

    bevor man etwas versucht zu programmieren sollte man sich vorher informieren !

    lol

  • ich danke dir für den Tipp,
    bin auf die like lösung gekommen, da ich über google gesucht habe und dort tipps sah, welche mit like waren, darauf hin hatte ich es damit versucht.

    Werde es aber jetzt mal mit Matsch Against versuchen.

    Big Thx

  • aber zu match...against ist zu beachten das es nur bei MyIsam Engine geht aber das ist die gängigste !

    du musst die spalten vorher indizieren bevor du sie durchsuchen kannst bei der instalation so z.b.

    FULLTEXT(1.spalte,2.spalte);

    oder wenn die Datenbank schon besteht die betrpffene datenbank öffnen
    tabelle wählen und dann auf struktur gehen unten links ist ein formular bei phpmyadmin mit der überschrift indiz oder indizien

    dort trägst du die spalten zahl ein wie viele halt durchsucht werden siollen

    und drückst OK dann siehst du dropdown menüs im ersten gibst du den typ an der ist FULLTEXT dann in den anderen menüs wählst du die spalten und dann abschicken wenn alles ok ist weiss der MySQL Optimierer das in diesen spalten eine FULLTEXT suche zu erwarten ist !!

    sonst gehts nicht !