Problem mit Volltextsuch-Modul

Gesperrt
Condor
Beiträge: 107
Registriert: Mo 14. Mär 2005, 17:31
Kontaktdaten:

Problem mit Volltextsuch-Modul

Beitrag von Condor »

Hallo,

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>"; 
?>
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

Es kommt ein Fehler, weis jemand warum ?
hmm... warum ? vielleicht kann dir das jemand sagen wenn du uns die fehlermeldung mitteilst...? contenido version ? usw...
*** make your own tools (wishlist :: thx)
Condor
Beiträge: 107
Registriert: Mo 14. Mär 2005, 17:31
Kontaktdaten:

Beitrag von Condor »

Hallo,

die Version ist 4.4.5. Wenn ich z.B. einen Vornamen und Nachname eingebe, kommt folgende Fehlermeldung auf der HP und in der errorlog.txt:

Code: Alles auswählen

Fatal error: Maximum execution time of 30 seconds exceeded in /home/htdocs/web9/html/cms/front_content.php(641) : eval()'d code on line 530
Hoffentlich hilft euch das bzw. ihr mir :-)
Gesperrt