we maken als eerste het bestand
zoeken.php
Daarin plaatsen we de volgende code, zoals je ziet is dit een combi van HTML en PHP.
In deze eerste bestand roepen we dan ook een tweede bestand op!! let goed op, staat in de code.
Tweede bestand noemen we dus
search.php
en daarin plaatsen we de volgende code.
<?php
mysql_connect("localhost", "root", "usbw") or die("Error connecting to database: ".mysql_error());
/*
localhost - de lokatie van de mysql server, meestal localhost
root - gebruikersnaam
derde is password van de phpmyadmin server
Note. dit is niet de veilige weg, gebruik include commando om de database te koppelen.
als er geen verbinding is zie je een error
*/
mysql_select_db("film") or die(mysql_error());
/* film is de naam van de database die we reeds hebben */
?>
<html>
<head>
<title>Search results</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--<link rel="stylesheet" type="text/css" href="style.css"/>-->
</head>
<body>
<?php
$query = $_GET['query'];
// gets waarde verkregen via zoeken.php form
$min_length = 1;
// kan je aanpassen naar een minimum lengte van de query als je dat wilt
if(strlen($query) >= $min_length){ // als de query lengte meer of gelijk is aan de gestelde minimum, dan
$query = htmlspecialchars($query);
// veranderd de characters die je in html gebruikt naar de juiste omschrijving, zoals: < to >
$query = mysql_real_escape_string($query);
// voorkomen van een SQL injection(zoek maar op google wat dit betekend)
$raw_results = mysql_query("SELECT * FROM films
WHERE (`filmnr` LIKE '%".$query."%') OR (`titel` LIKE '%".$query."%')") or die(mysql_error());
// * betekende dat je zoekt in alle velden, je kan dit aanpassen zoals naar : `id`(in plaatst van filmnr), `title(etc)`, `regisseurnr`
// films is de naam van de table
// '%$query%' is waar we naar zoeken, % betekend alls, voorbeel als $query Hello is
// zoeken we naar alles wat past bij "hello", "Hello man", "gogohello", wil je een exacte zoekopdracht dan gebruik je `title`='$query'
// of een volledig woord, zoals "gogohello" gebruiken we '% $query %' ...OR ... '$query %' ... OR ... '% $query'
if(mysql_num_rows($raw_results) > 0){ // 1 of meer regels dan doen we
while($results = mysql_fetch_array($raw_results)){
// $results = mysql_fetch_array($raw_results) plaatst de data van de database in een array, zolang het geldig is als een loop
echo "<p><h3>".$results['id']."</h3>".$results['titel']."</p>";
// plaatst het resultaat vanuit de database(filmnr en titel) je kan ook de id laten zien ($results['id'])
}
}
else{ // Niks gevonden dan...
echo "No results";
}
}
else{ // minmale lengte als zoekopdracht dan...
echo "Minimum length is ".$min_length;
}
?>
</body>
</html>