Voorbeeldje van gebruik
[code]<?
require('./libs/lib.dbsearch.php');

if(empty($_GET['q'])){
	$_GET['q'] = '[niet gedefinieerd]';
}
?>
<h1><?=Googlelize('zoeken');?></h1> 
<form action="" method="get">
	<input type="hidden" name="page" value="searchresults" />
	<input type="text" name="q" value="<?=$_GET['q']?>"/>
	<input type="submit" name="search" value="zoek!" /><br />
	<select name="type">
	<?
		unset($sel);
		switch($_GET['type']){
			case 'rel': $a = 0; break;
			case 'starts': $a = 1; break;
			case 'like': $a = 2; break;
			case 'ends': $a = 3; break;
			default: $a = 0; break;
		}
		$sel[$a] = "selected";
	?>
		<option value="rel" <?=$sel[0]?>>Relevantie</option>
		<option value="starts" <?=$sel[1]?>>Beginnend met</option>
		<option value="like" <?=$sel[2]?>>Bevat</option>
		<option value="ends" <?=$sel[3]?>>Eindigd met</option>
	</select>
	Aantal resultaten per pagina <select name="amount">
	<?
		unset($sel);
		switch($_GET['amount']){		
			case 10: $a = 0; break;
			case 20: $a = 1; break;
			case 30: $a = 2; break;
			case 40: $a = 3; break;
			case 50: $a = 4; break;
			default: $a = 0; break;
		}
		$sel[$a] = "selected";
	?>
		<option value="10" <?=$sel[0]?>>10</option>
		<option value="20" <?=$sel[1]?>>20</option>
		<option value="30" <?=$sel[2]?>>30</option>
		<option value="40" <?=$sel[3]?>>40</option>
		<option value="50" <?=$sel[4]?>>50</option>
	</select><br />
	<input type="checkbox" name="in_0" <?=($_GET['in_0']=='on'?'checked="on"':'')?> /> Klanten<br />
	<input type="checkbox" name="in_1" <?=($_GET['in_1']=='on'?'checked="on"':'')?> /> Contactpersonen<br />
	<input type="checkbox" name="in_2" <?=($_GET['in_2']=='on'?'checked="on"':'')?> /> Projecten<br />
    <input type="checkbox" name="in_3" <?=($_GET['in_3']=='on'?'checked="on"':'')?> /> Producten<br />
	

</form>
<?

if(isset($_GET['search'])){
	if(!empty($_GET['q'])){	
		$dbsearch = new MyOwnGoogle(mysql_real_escape_string($_GET['q']),$_GET['type']);
		foreach($_GET as $key => $var){
			if(substr($key,0,3) == 'in_'){
				if($var == 'on'){
					switch(substr($key,3)){
						case 0: $dbsearch->addColumn("customers", "name"); break;
						case 1: 
							$dbsearch->addColumn("customer_employees", "firstname");
							$dbsearch->addColumn("customer_employees", "lastname"); 
							break;
						case 2: $dbsearch->addColumn("projects", "name"); break;
						case 3: $dbsearch->addColumn("products", "title"); break;
					}
				}
			}
		}
		switch($_GET['amount']){		
			case 10: $dbsearch->searchAmount = 10; break;
			case 20: $dbsearch->searchAmount = 20; break;
			case 30: $dbsearch->searchAmount = 30; break;
			case 40: $dbsearch->searchAmount = 40; break;
			case 50: $dbsearch->searchAmount = 50; break;
			default: $dbsearch->searchAmount = 10; break;
		}
		
		print $dbsearch->Search();
				
	}
}
?>[/code]

De classe
[code]
<?
# gemaakt door P van Linschoten

class MyOwnGoogle{
	
	#@ variabelen setten enzeau
	protected $searchColumns = array();
	protected $searchWords = NULL;
	protected $searchType = NULL;
	protected $StartTime = 0;
	protected $EndTime = 0;
	protected $aResults = array();
	public $searchAmount = 0;
	
	# init
	public function __construct($words,$type){
		$this->StartTime = microtime();
		$this->searchAmount = 10;
		if(preg_match('[a-zA-Z0-9]',$words)){
				
		}
		$this->searchWords = trim($words);
		$this->searchType = $this->getSearchType($type);
	}	

	#@ Bepaal in welke kollommen gezocht moet worden.
	public function addColumn($table,$column){
		$this->searchColumns[$table][] = $column;
	}
	#@ Voer de zoekopdracht uit.
	public function Search(){
		switch($this->searchType){
			case 'rel': 
				$this->searchFulltext();
			break;
			case 'like':
				$this->searchLike();
			break;
		}
		if(count($this->aResults) == 0){
			return 'Er zijn geen zoekresultaten voor <strong>'.htmlentities($this->searchWords).'</strong>';
		}else{
			return $this->tableFormat();
		}
	}
	#@ Fulltext zoeken!
	protected function searchFulltext(){
		foreach($this->searchColumns as $table => $columns){
			$i = 0;
			$sColumns = NULL;
			foreach($columns as $column){
				$i++;
				$sColumns .= ($i==1?'':',').$column;
			}
			$query = "SELECT * FROM ".$table." WHERE MATCH(".$sColumns.") AGAINST('".$this->searchWords."') LIMIT ".$this->searchAmount;
			$query = mysql_query($query) or print('<p>'.mysql_error().'</p>');
			while($result = mysql_fetch_assoc($query)){
			 	$this->aResults[] = $result;
			}
		}
	}
	#@ zoeken dmv %like%
	protected function searchLike(){
		foreach($this->searchColumns as $table => $columns){
			
			foreach($columns as $column){
				
				$query = "SELECT * FROM ".$table." WHERE ".$column." LIKE '%".$this->searchWords."%' LIMIT ".$this->searchAmount;
				print $query.'<br />';
				$query = mysql_query($query);
				
				 while($result = mysql_fetch_assoc($query)){
				 	$this->aResults[] = $result;
				 }
			}
		}
	}
	#@ zoeken dmv %like
	protected function searchStartWith(){
		foreach($this->searchColumns as $table => $columns){
			foreach($columns as $column){
				
				$query = "SELECT * FROM ".$table." WHERE ".$column." LIKE '%".$this->searchWords."' LIMIT ".$this->searchAmount;
				print $query.'<br />';
				$query = mysql_query($query);
				
				 while($result = mysql_fetch_assoc($query)){
				 	$this->aResults[] = $result;
				 }
			}
		}
	}
	#@ zoeken dmv like%.
	protected function searchEndWith(){
		foreach($this->searchColumns as $table => $columns){		
			foreach($columns as $column){
				
				$query = "SELECT * FROM ".$table." WHERE ".$column." LIKE '".$this->searchWords."%' LIMIT ".$this->searchAmount;
				print $query.'<br />';
				$query = mysql_query($query);
				
				 while($result = mysql_fetch_assoc($query)){
				 	$this->aResults[] = $result;
				 }
			}
		}
	}

	#@ Bepaal zoek methode
	protected function getSearchType($type){
		switch($type){
			case 'rel': return $type;break;
			case 'starts': return $type;break;
			case 'ends': return $type;break;
			case 'like': return $type;break;
			case 'gamble': return $type; break;
			default: return 'rel';break;
		}
	}
	
	# Zet de zoek resultaten in een tabelletje. 
	protected function tableFormat(){
		$content .= '<table cellspacing="0" cellpadding="0" border="0" width="100%">';
		foreach($this->aResults as $result){
			$content.='<tr><td>'."\n";
			$i++;
			foreach($result as $key => $var){
				$content.= $key .' => '. $var.'<br />'."\n";
			}
			$content.='</td></tr>'."\n";
			if($i==10){
				break;
			}
		}
		$content.= "</table>";
		return $content;
	}

	# Highlighten van de zoekwoorden.
	protected function HighLight($text,$string){
		return preg_replace("/(?!<!--)(?!<)(^|[\s\.,>])($string)($|[\s,\.])(?!>)(?!-->)/i",
"\\1<span class=\"highlight\">\\2</span>\\3", $text);
	}
}


# googlelize your name :)
function Googlelize($var){
	$var = strtoupper($var);
	if(strlen($var) >= 6){
		for($i=0;$i<(strlen($var)-3);$i++){
			$digit = substr($var,$i,1);
			switch($i){
				case 0: $color = "#0000FF";break;
				case 1: $color = "#FF0000";break;
				default: $color = "#FFCC00";break;
				
			}
			
			$str .= "<span style='color:" . $color . "'>" . $digit . "</span>";    
		}    
		$str .= "<span style='color:#0000FF'>" . substr($var,-3,1) . "</span>";
		$str .= "<span style='color:#00FF00'>" . substr($var,-2,1) . "</span>";
		$str .= "<span style='color:#FF0000'>" . substr($var,-1,1) . "</span>";
		#$str = "<strong>" . $str . "</strong>";
	}
	return $str;
}
?>
[/code]