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:
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
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) . '... '; //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> | ';
}
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