#1 11. Januar 2008 Hallo, ich hab eine kleine Seite wo man einträge suchen kann. Bisher war das so, dass bei dem suchbegriff "Meine Suche" -> "Meine Suche" gesucht wurde. Ich will aber dass bei dem Suchbegriff "Meine Such" -> "Meine" und "Suche" gesucht wird. Sodas jeder Suchbegriff einzeln gesucht wird und die zutreffenden Ergebnisse nur die sind die beide separaten Suchbegriffe in irgendeiner stelle der Datenbank vorzufinden haben. Ich hoffe Ihr köntet mir helfen, wäre echt knorke BW ist drinne^^ Aktueller Script: PHP: <? php $suche = strtolower ( $_POST [ 'query' ]); $cat = $_POST [ 'cat' ]; $sql = mysql_query ( "SELECT * FROM en_" . $cat . " WHERE page_news LIKE '% $suche %' && status = 1 ORDER BY id DESC" ); $row = mysql_fetch_array ( $sql ); echo "<img src='images/search_line.jpg' border='0'><br>" ; if (! mysql_num_rows ( $sql )) { echo "<br>Leider fanden sich in unserer Datenbank keine Einträge,<br>die Ihrem Suchbegriff gerecht wurden.<br><br>Bitte seien Sie doch etwas toleranter." ; } while ( $row = mysql_fetch_array ( $sql )) { $zeile = explode ( "\n" , strtolower ( $row [ 'page_news' ])); $zeile2 = explode ( "\n" , $row [ 'page_news' ]); $anzahl = count ( $zeile ); $i = 0 ; while ( $anzahl > $i ) { $drinne = substr_count ( $zeile [ $i ], $suche ); if ( $drinne == true ) { $id = $row [ 'page_id' ]; $sql2 = mysql_query ( "SELECT * FROM en_pages WHERE id = ' $id ' AND status = '1'" ); $row2 = mysql_fetch_array ( $sql2 ); $page_name = $row2 [ 'page_name' ]; $page_link = $row2 [ 'page_link' ]; echo "<a href=' $page_link ' target='_blank'> $page_name </a><br>" ; if ( $row2 [ 'premium' ] == 1 ) {echo "<b>" . $zeile2 [ $i ] . "<br><br></b>" ;} else {echo $zeile2 [ $i ] . "<br><br>" ;} } $i ++; } } ?> Gerne nehme ich auch andere Verbesserungsvorschläge im Script an ;- mfg Matosch + Multi-Zitat Zitieren
#2 11. Januar 2008 AW: Möchte meine Suchfunktion verbessern. Bevor du die Suche startest, lass doch den Suchstring nach Leerzeichen trennen und den Wert in ein Array laden (explode Funktion). Danach lässt du mit einer Schleife jeden Arraypunkt suchen und fügst die Ergebnisse in ein anderes Array ein und gibst dieses am Ende aus. + Multi-Zitat Zitieren