Hilfe weiss nicht mehr weiter

dreambaser

Erfahrenes Mitglied
Hallo,

Ich hab mir ein Suchscript geschrieben, welches auch so ohne Probleme funktioniert solange ich nur 1 Suchwort eingebe.

Sobald ich aber mehrere Eingebe, versagt meine Seitenverteilung.

Ich weiss nicht mehr weiter, vielleicht hat von euch jemand noch ne Idee dazu?

Hier mal mein Script:

PHP:
				if (!isset($start_search)) {
  $start_search = 0;
}
				
				$sql="SELECT * from ".TABLE_PRODUCTS." WHERE status=1 AND ";
for ($i = 0; $i < count($search_array); $i++)
	 {
$sql .="title_".$_SESSION['language']." like '%".$search_array[$i]."%' or description_".$_SESSION['language']." like '%".$search_array[$i]."%' or goal_".$_SESSION['language']." like '%".$search_array[$i]."%' or content_".$_SESSION['language']." like '%".$search_array[$i]."%' ";

 if($i<count($search_array)-1){ 
            $sql .= ' and '; 
        } 
	}
	$sql .=" ORDER BY title_".$_SESSION['language']." ASC LIMIT $start_search , $searchlines";
//var_dump($sql);
$result = mysql_query ($sql);
$num_news = mysql_num_rows($result); 
				

for($i=0; $i<$num_news; $i++){ 


$product_id = mysql_result($result ,$i,'product_id');
$titles = mysql_result($result ,$i,'title_'.$_SESSION['language'].'');
$categories_id = mysql_result($result , $i, 'categories_id');
$news_text = mysql_result($result ,$i,'description_'.$_SESSION['language'].''); //abfrage der news 
$first = array_slice(explode(' ', $news_text), 0, 20); //explode teilt den string wieder an der ' ' und array_slice erstellt einen neuen array mit den ersten 40 elementen = worten der news 
$kurze_news = join(' ', $first) . '...&nbsp;'; //join verbindet die elemente des arrays wieder zu einem string. am ende werden noch drei punkte angehängt... 
$sql_cat = "SELECT * FROM ".TABLE_CATEGORIES." WHERE categories_id='$categories_id'";
$result_cat = mysql_query($sql_cat);
$categories_result = mysql_fetch_array($result_cat);

//echo $categories_result['categories_lang_'.$_SESSION['language']]; 
echo '<a href="'.FILENAME_DETAILS.'?product_id='.$product_id.'&categories_id='.$categories_id.'">'.$titles.'</a><br>'; //links auf die seite show_news.php 
echo $kurze_news.'<br><br>';

}
	
//Seitenweiterleitung		
	
				$sql_search = "SELECT * from ".TABLE_PRODUCTS." WHERE ";
				for ($i = 0; $i < count($search_array); $i++)
	 {	
				$sql_search .="title_".$_SESSION['language']." like '%".$search_array[$i]."%' or description_".$_SESSION['language']." like '%".$search_array[$i]."%' or goal_".$_SESSION['language']." like '%".$search_array[$i]."%' or content_".$_SESSION['language']." like '%".$search_array[$i]."%' ";
	}


$result_search_count=mysql_query($sql_search);

$numbers_search=mysql_num_rows($result_search_count);


if($numbers_search>$searchlines) {
  $sites_search=intval($numbers_search/$searchlines);
  if($numbers_search%$sarchlines) {
    $sites_search++;
  }
}
for ($i_search=1;$i_search<=$sites_search;$i_search++) {
  $forward_search=($i_search-1)*$searchlines;
  echo '<a href="'.$_SERVER['PHP_SELF'].'?start_search='.$forward_search.'&search='.$search.'">'.$i_search.'</a>&nbsp;|&nbsp;';
}

Zuerst wird der Suchbegriff in ein Array aufgesplittet, danach wird durchsucht und dann ausgegeben.

Dann soll das ganze limitert werden auf 4 Ausgaben pro seite. Soweit auch kein Problem, aber sobald man mehr als 1 Suchbegriff eingibt, dann kann mysql_num_rows nicht mehr greifen.

Habt Ihr ne Idee wie ich das machen muss, das das trotzdem funktioniert ?

Vielen Dank

mfg
Dream
 
Lass dir mal $sql_search ausgeben, dann siehst du, wo der Fehler liegt(.... mysql_error() leistet da zusätzlich hilfreiche Dienste).

Ich schätze, bei mehr als 1 Suchbegriff fehlt ein "or" vor title_
 
Zurück