PHP + MySQL: gethint.php
PHP script
Dit is het PHP-script, dat je kan combineren met MySQL. We gaan eerst uit de database alle namen halen, die we dan toevoegen aan $a. Daarna kijken we of $_GET['q'] langer is dan 0. Als dat zo is gaan we zoeken voor suggesties. Daarna gaan we kijken of er meerdere suggesties zijn. Als er meerdere suggesties zijn voegen we ze allemaal toe. Als er niks is gevonden zetten we de suggesties op "Geen suggesties". Daarna laten we $response zien. LET OP: Je moet waarschijnlijk de database-gegevens aanpassen.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//foutafhandeling
# errors weergeven
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
$con = mysql_connect( 'localhost', 'root', '' )
if (!$con)
{
echo "Er is een fout opgetreden bij het verbinden met de MySQL database."
}
mysql_select_db( 'gebruikers' )
$query = "SELECT naam, ID FROM `gebruikers` ORDER by `ID`";
if (($result = mysql_query($query)) === false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($sql,mysql_error(),'Fout met database.');
// we stoppen met het script
echo "Foute query."
}
else
{
# De query is gelukt
$num_results = mysql_num_rows($result);
for($i = 0; $i < $num_results; $i++)
{
$row = mysql_fetch_assoc($result);
$a[] = $row['naam'];
}
if (strlen($_GET['q']) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($_GET['q'])==strtolower(substr($a[$i],0,strlen($_GET['q']))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
if ($hint == "")
{
$response="Geen suggesties";
}
else
{
$response=$hint;
}
echo $response;
}
?>
Database stuctuur
Als je lui bent, of gewoon geen zin hebt om de databasestructuur aan te maken, kan je deze dump gebruiken. Zet de code in een bestand met de extensie .sql. Bijvoorbeeld databasedump.sql.
Handleiding voor PHPMyAdmin
Log in met je gebruikersnaam en wachtwoord dat je normaal ook gebruikt. Ga dan naar tabblad Importeer. Kies eerst het bestand bij Bestand kiezen. Meestal staat de indeling op SQL. Dit moet je laten staan. Staat de indeling nog niet op SQL? Klik dan op SQL. Klik daarna op Start. Als het goed is wordt de database gebruikers aangemaakt met daarin 1 tabel.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE DATABASE IF NOT EXISTS `gebruikers` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `gebruikers`;
# Dumping structure for table gebruikers.users
CREATE TABLE IF NOT EXISTS `users` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`naam` varchar(100) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
# Dumping data for table gebruikers.users: ~2 rows (approximately)
DELETE FROM `users`;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` (`ID`, `naam`) VALUES
(1, 'Gebruiker1'),
(2, 'Gebruiker2');
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;