ich habe ein Problem mit meinem Suchen-Modul. Leider weis ich nicht mehr welches es war. Immer wenn ich mehr als ein Wort eingebe, kommt keine Suchergebniss heraus. Es kommt ein Fehler, weis jemand warum ? Hier der Code:
Code: Alles auswählen
INPUT:
<?php
echo"
<table border=\"0\" width=53 id=\"table1\" cellspacing=\"0\">
<tr>
<td>
<form name=\"suche\" method=\"POST\" action=\"front_content.php?idcat=1&idart=658\" >
<p align=center>
<input type=\"text\" size=\"\" class=\"feld\" name=\"suche\" value=\"$suche\"></td>
</tr>
<tr>
<td>
<p align=center>
<button name=\"s\" type=\"submit\" value=\"Suchen\" size=\"2\" style=\"width: 100px;height:20px; color: white; border:0;background-color:#4779a0;\">
Volltextsuche</button></td>
</tr>
</table> "
?>
Code: Alles auswählen
OUTPUT:
<?php
echo "<table border=0 cellpadding=0 cellspacing=0><tr>";
if($suche){
$suche = trim($suche);
$suchregexp = "(".str_replace(" ",")|(",$suche).")";
$s=ereg_replace("ü", "%FC",strtolower($suche));
$s=ereg_replace("ä", "%E4",$s);
$s=ereg_replace("ö", "%F6",$s);
$s=ereg_replace("ß", "%DF",$s);
$suchregexp .= "|$s";
while(ereg(' ',$suche))
{
$suche = ereg_replace(' ',' ',$suche);
}
$suchliste = explode(" ",strtolower($suche));
$sql = "SELECT
a.title AS title, a.idart AS idart, a.summary AS comment, a.idartlang AS idartlang,
b.idcat AS idcat,
c.parentid AS parentid,
d.value AS content
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c,
".$cfg["tab"]["content"]." AS d
WHERE
a.idart = b.idart AND
a.idartlang = d.idartlang AND
b.idcat = c.idcat AND
c.idclient = '$client' AND
idlang = '$lang' AND
online='1' AND
(d.value REGEXP '$suchregexp' OR a.title REGEXP '$suchregexp' OR a.summary REGEXP '$suchregexp')";
$db->query($sql);
if ($db->num_rows() != 0){
for ($i=0; $i<$db->num_rows(); $i++) {
$db->next_record();
if ($auth->auth["uid"] == "nobody"){
$sql2 = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$db->f("idcat")."'";
$db2 = new DB_Contenido; $db2->query($sql2); $db2->next_record();
if($db2->f("public") == 0) continue;
};
$num = 0 + $db->f("idartlang");
$results[$num][link] = "front_content.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart")."";
$results[$num][title] = $db->f("title");
switch ("CMS_VALUE[2]") {
case 0: $results[$num][text] = "";break;
case 1: $results[$num][text] = $db->f("comment");break;
case 2: $results[$num][text] .= substr(strip_tags(rawurldecode($db->f("content"))),0,100)."...";
};
for($x=0;$x<count($suchliste);$x++){
$treffer[$num] += substr_count(strtolower(urldecode($db->f("title"))), $suchliste[$x]) +
substr_count(strtolower(urldecode($db->f("comment"))), $suchliste[$x]) +
substr_count(strtolower(urldecode($db->f("content"))), $suchliste[$x]);
};
};
if(count($treffer) > 0){
$treffer = array_values($treffer);
$results = array_values($results);
array_multisort ($results, SORT_DESC, SORT_NUMERIC, $treffer, SORT_DESC, SORT_NUMERIC);
for ($i=0; $i<count($treffer); $i++){
echo "<tr><td align=left><font size=\"-1\"><a href=\"".$results[$i][link]."\" class='text'";
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";};
echo ">".$results[$i][title]."</a></font> <span class='text'>(".$treffer[$i]." Treffer)<BR>";
echo $results[$i][text]."</span></td></tr>";
};
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden</td></tr>"; };
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden</td></tr>"; };
};
echo "</table>";
?>