Da ich unsere Linkliste ein wenig auffrische, möchte ich dort gerne eine Suchfunktion einbauen. In etwa soll das ganze so funktionieren, dass es im jeweiligen Link sucht, ob in $data[‚name‘] der Suchbegriff enthalten ist - per Schleife geht es die Links durch und wenn der Suchbegriff nicht existiert sollte eine Meldung erscheinen.
GROSS/klein Schreibung sollte keine Rolle spielen im Suchbegriff und auch sollte sinnvoll gesucht werden, also wenn dies der Suchbegriff ist: wort zahl haus - dann sollte nicht nach der Abfolge „wort zahl haus“ geuscht werden, sondern ob die Wörter wort, zahl und haus enthalten sind. Ich habe jedoch keine Ahnung wie ich das realisiere ausser der Schleife.
Kann mir jemand weiterhelfen?
Vielen Dank schonmal.
MFG
Edit: Achja, vielleicht hilft es wenn sich jemand mit MyBB auskennt, dass ich MyBB verwende - kann man da irgendwie das Plugin hook_finder verwenden? oder ist das nur für die memberlist.php
Hm… Das sieht mir jedoch nach MySQL aus - ich habe jedoch den Text, der durchsucht werden soll bereits als Variable in PHP.
Auch kann ich mit meinem Bescheidenen Wissen in PHP und vor allem MySQL herzlich wenig damit anfang (Will ja net stressen, aber… )
@creativ webdesigns:
Ja, sorry, ich wusste selber nicht genau wie ich das Problem beschreiben soll. Ursprünglich kommen die Daten aus einer Datenbank.
@vitus:
Ich werd das mal versuchen und mich wieder melden. Jedoch steht bei der Funktion split() dass die Funktion veraltet ist. Kann ich diese trotzdem verwenden? Verwirrt mich jetzt nur gerade…
[SIZE=2]also nach einigen Missverständissen habe ich folgenden Code geschrieben.
[/SIZE][SIZE=3][SIZE=2]
Nun weiss ich jedoch überhaupt nicht mehr weiter.
[CODE]<?php
$suchbegriff = „Haus Baum“;
$begriffe = explode(" ", $suchbegriff); // splitet den suchbegriff in Wörter
foreach ($db as $erg) { //geht die einzelnen Einträge in der db durch
foreach ($begriffe as $suchwort) {//geht die Suchbegriffe durch
$ergebnis .= substr_count($erg, $suchwort); // vergleicht Wörter und gibt true oder false aus
}
}
echo $ergebnis;
?>[/CODE]Jedoch gibt das immernoch nur Zahlen aus.
Könnt ihr mir nochmals weiterhelfen?
irgendwie müsste ich die Nummer des arrays von $db verwenden können, dann könnte ich mir vorstellen, dass ich ein wenig weiterkommen könnte. Doch ich habe da ebenfalls keine Ahnung wie…
foreach ($db as $erg) { //geht die einzelnen Einträge in der db durch
foreach ($begriffe as $suchwort) {//geht die Suchbegriffe durch
// Prüfung, ob Suchwort mehr als 0 mal vorkommt
if(substr_count($erg, $suchwort) > 0){
// Wenn ja, dann Textausgabe
echo $erg;
}
}
Hmm… Das bringt leider noch weitere Probleme und ist auch nicht die (gesamte?) Lösung des Problems. Ich müsste aber eigentlich auch mehr erklären, damit für euch klar wird, was ich alles will. Doch mir brummt der Kopf im Moment so dass ich selber nicht mehr weiss auf was es alles ankommt…
Auf jeden Fall muss ich eine Suche für ClubFreeware - Linkliste erstellen um diese durchsuchen zu können.
Ich werd mir das Ganze nochmals durch den Kopf gehen lassen - vielleicht komme ich wieder ein paar Schritte weiter oder sonst melde ich mich hier nochmals.
Vielen Dank für die vielen nützlichen Tipps bis jetzt. Hat mir sehr geholfen.
Also, ich weiss jetzt konkret weshalb dein Code vitus37 nicht klappt. Der Script geht ja alle Beiträge in der db durch und dann noch alle Suchwörter. So wird für jedes gefundene Wort $erg ausgegeben und nicht, wenn beide Wörter im Ergebis vorhanden ist. Lässt sich das beheben und dann auch nach relevanz suchen (also dass nach den Ergebnissen mit allen Einträgen die kommen mit 1 weniger usw.)?