//--------- zoeken.php -----------------//
[code]
<?PHP
	////////////////////////////////////////////////
	// Script: DBsearch
	//
	// Door: Pieter van Linschoten
	// Datum: Zondag 11 maart 2006
	// Website: www.lapidi.nl
	// Tevens origineel beschikbaar:  www.phphulp.nl
	// Email: 'webmaster @ lapidi . nl'
	// Rechten: GNU General Public Licence
	// Download: www.lapidi.nl
	// Voorbeeld: www.lapidi.nl // tijdelijk: www.baracasino.com/new/zoeken.php
	////////////////////////////////////////////////

	/* BIJBEHORENDE TABEL:
	CREATE TABLE `teksten` (
	  id smallint(11) NOT NULL auto_increment,
	  tekst longtext NOT NULL,
	  titel varchar(255) NOT NULL default '',
	  PRIMARY KEY  (`id`)
	) ENGINE=MyISAM DEFAULT ;
	*/


// DATABASE CONNECTION. VUL HIER JE EIGEN GEGEVENS IN!
$db = Array();
$db['db'] = "";					// DE DATABASE
$db['user'] = "";				// GEBRUIKERSNAAM
$db['pass'] = "";				// WACHTWOORD
$db['host'] = "localhost";	// HOST

if (!mysql_select_db($db['db'],mysql_connect($db['host'], $db['user'], $db['pass']))){
    echo "Database connectie mislukt."; 
    exit(); 
}

// VUL HIER JOUW PERSOONLIJKE INSTELLINGEN IN. 
$naam = 'Google'; // MINIMAAL 6 LETTERS (NAAM DIE BOVEN DE ZOEKMACHINE KOMT)
$displaystyle = '1'; // ORIGINELE STYLE LATEN ZIEN? 1 = JA, IETS ANDERS IS NEE.
$nextpage = 'teksten.php'; // PAGINA WAAR DE LINKS VAN DE ZOEKRESULTATEN HEEN VERWIJZEN

// LEUK GRAPJE IN HET SCRIPT :)
function google($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 = "#EEEE00";break;
			}
			
			$str .= "<FONT COLOR='" . $color . "'>" . $digit . "</FONT>";	
		}	
		$str .= "<FONT COLOR='#0000FF'>" . substr($var,-3,1) . "</FONT>";
		$str .= "<FONT COLOR='#00FF00'>" . substr($var,-2,1) . "</FONT>";
		$str .= "<FONT COLOR='#FF0000'>" . substr($var,-1,1) . "</FONT>";
		$str = "<b>" . $str . "</b>";
	}
	return $str;
}

// DE ZOEKWOORDEN VETGEDRUKT MAKEN
function search_result($tekst,$str)
{
	$replace = strrev($str);
	$tekst = str_replace($str,"<b>".$replace."</b>",$tekst); // STRING OMDRAAIEN, OMDAT DEZE AND
	$tekst = str_replace($replace,"<b>".$str."</b>",$tekst);
	return $tekst;
}

// ORGINELE STYLE SHEET (LAYOUT) 
// (DIT KAN WORDEN WEGGEHAALD ZONDER DAT HET DE WERKING VAN HET SCRIPT BEINVLOED){
if($displaystyle == '1'){
	$style  = "<style>\n";
	$style .= "body{\nbackground-color:#F4F4F4;\nfont-family:verdana;\nfont-size:8pt;\n}\n";
	$style .= "table{\n\nbackground-color:#FFFFFF;\nfont-family:verdana;\nfont-size:8pt;\nborder-collapse: collapse;\n}\n";
	$style .= "table.search{\nborder: 1px solid #000000;\n}\n";
	$style .= "input,select{\nfont-family:verdana;\nfont-size:8pt;\npadding:0px;\n}\n";
	$style .= "tr.header{\ncolor:#ffffff;\nbackground-color:#99CCFF;\n}\n";
	$style .= "</style>";
	echo $style;
}
// }

// BEGIN BEREKENING TIJD NODIG VOOR ZOEKEN
$time_start = microtime(true);
?>
<FORM METHOD=GET ACTION="zoeken.php">

<TABLE class='search'>
<TR class='header'>
	<TD colspan='2' align='center'><B><?=google($naam)?>-Zoeken</B></TD>	
</TR>

<TR>
	<TD>Zoeken:</TD>
	<TD><INPUT TYPE="text" NAME="zoek" value="<?=htmlspecialchars($_GET['zoek']);?>">&nbsp;<INPUT TYPE="submit" value='zoek'></TD>
</TR>
<TR>
	<TD>tekst</TD>
	<TD>
		<SELECT NAME="position">
			<option value="middle">bevat</option>
			<option value="start">begint met</option>
			<option value="end">eindigd op</option>
		</SELECT> zoekwoord
	</TD>
</TR>
<TR>
	<TD>Resultaten</TD>
	<TD>
		<SELECT NAME="result">
			<option value="10">10 per pagina</option>
			<option value="20">20 per pagina</option>
			<option value="30">30 per pagina</option>
			<option value="40">40 per pagina</option>
			<option value="50">50 per pagina</option>
		</SELECT></TD>
</TR>
</TABLE>
</FORM>
<?PHP
	// KIJKEN OF ER WAARDEN ZIJN
	if(!empty($_GET['zoek']) && isset($_GET['position'])){
		
		// CONTROLE VAN DE 'GET' WAARDEN
		$_GET['zoek'] = htmlspecialchars($_GET['zoek']);

		if(!is_numeric($_GET['result']) || !isset($_GET['result'])){
			$_GET['result'] = '10';
		}
		if(!is_numeric($_GET['start']) || !isset($_GET['result'])){
			$_GET['start'] = '0';
		}

		// ZOEK-BEREDENERING
		switch($_GET['position']){
			case 'start': 
				$opdracht = $_GET['zoek'] . '%';
				$text='beginnen met de woorden <B>' . $_GET['zoek'] . '</B>';
			break;
			case 'end': 
				$opdracht = '%' . $_GET['zoek'];
				$text='eindigen op de woorden <B>' . $_GET['zoek'] . '</B>';
			break;
			case 'middle':
				$opdracht = '%' . $_GET['zoek'] . '%';
				$text='de woorden <B>' . $_GET['zoek'] . '</B> bevatten';
			break;
			default:
				$opdracht = '%' . $_GET['zoek'] . '%';
				$text='de woorden <B>' . $_GET['zoek'] . '</B> bevatten';
			break;
		}

		echo "<p>U zoekt naar teksten die " . $text . ". Er worden <B>" . $_GET['result'] . "</B> zoekresultaten per pagina weergeven</p>";
	
		// SELECTIE VAN DE TEKSTEN UIT DE DATABASE
		$sql = "SELECT * FROM teksten WHERE titel LIKE '" . $opdracht . "' OR tekst LIKE '" . $opdracht . "' ";
		$aantal = mysql_num_rows(mysql_query($sql));
		
		// GEEN RESULTATEN
		if($aantal < 1){
			echo "<p><I>Er zijn geen zoekresultaten in de database van " . google($naam) . " van teksten die " . $text . "</I></p><p>Suggestie:<br>* Zorg ervoor dat alle woorden goed gespeld zijn.<br>* Probeer andere zoektermen.<br>* Maak de zoektermen algemener.<br>* Gebruik minder zoekwoorden.</p>";
		}else{
			// HET RESULTAAT

			// BEREKENINGEN
			$pages = ceil($aantal/$_GET['result']);
			$limit = "ORDER BY titel ASC LIMIT " . $_GET['start'] . "," . ($_GET['start'] + $_GET['result']);
			$res = mysql_query($sql . " " . $limit);
			
			echo "<p>Er zijn <B>" . $aantal . "</B> zoekresultaten.</p>";

			//ZOEKRESULTATEN WEERGEVEN
			while($row = mysql_fetch_array($res)){
				
				// DE TITEL
				echo "<p><A HREF='".$nextpage."?tid=" . $row['id'] . "'>".search_result($row['titel'],$_GET['zoek']) . "</a><br>";
				
				$row['tekst'] = search_result($row['tekst'],$_GET['zoek']);

				// WEERGEEF EERSTE 70 WOORDEN VAN DE TEKST
				if(strlen($row['tekst']) > 70){ $dots = '..';}
				echo "<i>" . substr($row['tekst'],0,70) . "</i>".$dots."<br>";
				
				// LAATSTE 70 WOORDEN WEERGEVEN, INDIEN TEKST MEER DAN 140 TEKENS HEEFT
				if(strlen($row['tekst']) > 140){
					echo ".. <i>" . substr($row['tekst'],-70,70) . "</i>";
				}
				echo "</p>";
			}


			// VORIGE PAGINA LINK
			$start =  $_GET['start'] - $_GET['result'];
			if($start <= 0){
				echo "<FONT COLOR='#DBDBDB'><< Vorige</FONT> ";
			}else{
				echo "<A HREF='zoeken.php?zoek=" . $_GET['zoek'] . "&position=" . $_GET['position'] . "&start=" . $start . "&result=" . $_GET['result'] . "'><< Vorige</A> ";
			}
				
			echo "&nbsp;<A HREF='zoeken.php?zoek=" . $_GET['zoek'] . "&position=" . $_GET['position'] . "&start=" . 0 . "&result=" . $_GET['result'] . "'>" . (1) . "</A>&nbsp;\n";

			// PAGINA NUMMERING
			for($i=1; $i<($pages);$i++){
				$start = $_GET['result'] * $i;
				echo "&nbsp;<A HREF='zoeken.php?zoek=" . $_GET['zoek'] . "&position=" . $_GET['position'] . "&start=" . $start . "&result=" . $_GET['result'] . "'>" . ($i+1) . "</A>&nbsp;\n";
			}

			// VOLGENDE PAGINA LIMK
			$start = $_GET['result'] + $_GET['start'];
			if($start >= $aantal){
				echo " <FONT COLOR='#DBDBDB'>Volgende >></FONT>\n";
			}else{
				echo " <A HREF='zoeken.php?zoek=" . $_GET['zoek'] . "&position=" . $_GET['position'] . "&start=" . $start . "&result=" . $_GET['result'] . "'>Volgende >></A>\n";
			}
		}
	
	// BEREKENING VAN DE TIJD NODIG VOOR ZOEKRESULTAAT
	$time_end = microtime(true);
	$time = $time_end - $time_start;
	echo "<p><FONT COLOR='DBDBDB'>De " . google($naam) . " zoekmachine vond <B>" . number_format($aantal,0,'','.') . "</B> zoekresultaten in " . $time . " seconden.</FONT></p>";

	}
?>
[/code]