mAu
Erfahrenes Mitglied
Hi!
Ich bin grad dabei ein kleines Forum mit PHP / mySql zu schreiben!
Hab mich vorhin an die Suche gemacht... Also, wenn ich jetzt ein Suchbegriff eingebe, so findet er auch die richtigen Threads, aber in der Resultliste von der Suchfunktion wird der Threadtitel sooft ausgegeben, wie er Replies enthält... hier mal ein auszug des Scripts...:
Hoffe, ich hab mich einigermaßen verständlich ausgedrückt...
mfg mAu
*edit*: Hier mal ein Screenshot wie es aussieht, der Thread "Hallo Welt 2 !" sollte eigendlich nut 1x angezeigt werden. Je mehr Replies ich dem Thread zuordne, desdo öfter wird er bei der Suchausgabe angezeigt. D.h. zur Zeit sind 3 Antworten in dem Thread
Ich bin grad dabei ein kleines Forum mit PHP / mySql zu schreiben!
Hab mich vorhin an die Suche gemacht... Also, wenn ich jetzt ein Suchbegriff eingebe, so findet er auch die richtigen Threads, aber in der Resultliste von der Suchfunktion wird der Threadtitel sooft ausgegeben, wie er Replies enthält... hier mal ein auszug des Scripts...:
PHP:
if(isset($_POST['gosearch'])){
if($_POST['sep'] == "and") $seperator = " AND ";
else $seperator = " OR ";
$woerter = explode(" ",$_POST['suche']);
if($_POST['searchby'] == "titel") $search = "(p".$bn."_threads.threadtitel LIKE \"%".$woerter[0]."%\")".$seperator;
if($_POST['searchby'] == "all") $search = "(p".$bn."_reply.replymessage LIKE \"%".$woerter[0]."%\") OR (p".$bn."_threads.threadtitel LIKE \"%".$woerter[0]."%\")".$seperator;
if(count($woerter) > 1){
for($i=1;$i<count($woerter);$i++){
if($_POST['searchby'] == "titel") $search .= "(p".$bn."_threads.threadtitel LIKE \"%".$woerter[$i]."%\")".$seperator;
if($_POST['searchby'] == "all") $search .= "(p".$bn."_reply.replymessage LIKE \"%".$woerter[$i]."%\") OR (p".$bn."_threads.threadtitel LIKE \"%".$woerter[$i]."%\")".$seperator;
}
}
($seperator == " AND ") ? $search = substr($search, 0, -5) : $search = substr($search, 0, -4);
$select = mysql_query("
SELECT
p".$bn."_threads.*,
p".$bn."_reply.parentthreadid,
p".$bn."_user.userid,
p".$bn."_user.username
FROM p".$bn."_threads
LEFT JOIN p".$bn."_user ON (p".$bn."_threads.tlastpostid=p".$bn."_user.userid)
LEFT JOIN p".$bn."_reply ON (p".$bn."_threads.threadid=p".$bn."_reply.parentthreadid)
WHERE
".$search."
ORDER BY p".$bn."_threads.tlastposttime") or die(mysql_error());
if(mysql_num_rows($select) > 0){
while($search = mysql_fetch_array($select)){
$lastpost = "<a href=\"user.php?show=detail&userid=".$search['lastpostid']."\"><b>".$search['username']."</b></a><br><font class=\"smallfont\">".date("d.m.Y, H:i",$search['lastposttime'])."</font>";
$icon = getThreadIcon($indexthread['threadicon']);
eval("\$ausgabe .= \"".gettemplate("search_searchbit")."\";");
}
}
else{
eval("\$ausgabe = \"".gettemplate("search_noresult")."\";");
}
}
Hoffe, ich hab mich einigermaßen verständlich ausgedrückt...
mfg mAu
*edit*: Hier mal ein Screenshot wie es aussieht, der Thread "Hallo Welt 2 !" sollte eigendlich nut 1x angezeigt werden. Je mehr Replies ich dem Thread zuordne, desdo öfter wird er bei der Suchausgabe angezeigt. D.h. zur Zeit sind 3 Antworten in dem Thread
Zuletzt bearbeitet: