Zoeken in meerdere kolommen
Auteur: Piro - 15 augustus 2005 - 23:19 - Gekeurd door: nemesiskoen - Hits: 6434 - 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;
}
?>
<?php function 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. |
|