Möchte meine Suchfunktion verbessern.

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Matosch, 11. Januar 2008 .

  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&auml;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
     
  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.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.