| 
            
            
                    
            
             
 
 
                    
                    | Zoeken in meerdere kolommen
                    Auteur: Piro - 15 augustus 2005 - 23:19 - Gekeurd door: nemesiskoen - Hits: 6616  - Aantal punten: 4.25 (2 stemmen)
                     
                        Dit is een kleine functie die ik gemaakt heb om door meerdere kolommen te zoeken in een database...
 
De functie is makkelijk te gebruiken:
 
    
    
        
            
                
<?php
$sSql = "SELECT * FROM tabel WHERE ".getWhereString($_GET['q'], 'AND', array('kolom1', 'kolom2', 'kolom3'));
//$_GET['q'] bevat dan ee nstring met keywords: pagina.php?q=paard+ezel+koe
//querie uitvoeren...
?>
 <?php$sSql = "SELECT * FROM tabel WHERE ".getWhereString($_GET['q'], 'AND', array('kolom1', 'kolom2', 'kolom3'));//$_GET['q'] bevat dan ee nstring met keywords: pagina.php?q=paard+ezel+koe //querie uitvoeren... ?>
   
De eerste parameter, $sKeywords, moet een string bevatten met de woorden waarop gezocht moet worden
 
De tweede parameter, $sAndor, geeft aan of alle woorden moeten  (AND) voorkomen of mogen  (OR) voorkomen
 
De derde parameter, $aFields, is een array met de kolommen waarin gezocht moet worden... |  
 
                    
                    | Code: |  
                    | 
    
    
        
            
                
<?php
function getWhereString($sKeywords, $sAndor, $aFields){
		$sKeywords = ereg_replace(" +", " ", trim($sKeywords));
        $aKeywords = split('[ +]', $sKeywords);
        $sWhere = '';
        for($i=0;$i<count($aKeywords);$i++){
            $sWhere .= (($i==0)?' ':' '.$sAndor.' ').(($sAndor=='AND')?'( ':'');
            for ($iK = 0; $iK<count($aFields); $iK++){
                $sWhere .= (($iK==0)?' ':' OR ').$aFields[$iK]." LIKE '%".$aKeywords[$i]."%' ";    
            }
            $sWhere .= (($sAndor == 'AND')?' ) ':' ');
        }
        return $sWhere;
} 
?>
 <?phpfunction getWhereString($sKeywords, $sAndor, $aFields){        $aKeywords = split('[ +]', $sKeywords);        $sWhere = '';        for($i=0;$i<count($aKeywords);$i++){            $sWhere .= (($i==0)?' ':' '.$sAndor.' ').(($sAndor=='AND')?'( ':'');            for ($iK = 0; $iK<count($aFields); $iK++){                $sWhere .= (($iK==0)?' ':' OR ').$aFields[$iK]." LIKE '%".$aKeywords[$i]."%' ";                }            $sWhere .= (($sAndor == 'AND')?' ) ':' ');        }        return $sWhere;} ?>
   
 
  Download code (.txt) |  
 
            
            
                    
            
             | 
                
                |  Stemmen |  
                | Niet ingelogd. |  
 |