Zoekveld in een simpel databaseje
Ik ben een beginnend php programeur en ik heb een vraag.
Ik heb de tutorial voor databases voor beginners gevolgd. Daarmee heb ik deze code gevormd...
Code (php)
1
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
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
<?php
// eerst verbind je naar de database
$link = mysql_connect('localhost','localuser','localpasswd');
mysql_select_db('localdb',$link);
// daarna probeer je een query uit te voeren
$sql = 'SELECT voornaam, achternaam, adres, plaats, email
FROM adressen
WHERE voornaam = "dennis"';
$res = mysql_query($sql,$link);
if ($res && mysql_num_rows($res) >= 1)
{
// begin tabel
echo '<table border="10">
<tr>
<td><b>Voornaam</b></td>
<td><b>Achternaam</b></td>
<td><b>Adres</b></td>
<td><b>Plaats</b></td>
<td><b>Email</b></td>
</tr>';
while ($row = mysql_fetch_array($res))
// laat resultaat zien in tabel
{
echo '<tr>
<td>'.$row['voornaam'].'</td>
<td>'.$row['achternaam'].'</td>
<td>'.$row['adres'].'</td>
<td>'.$row['plaats'].'</td>
<td>'.$row['email'].'</td>
</tr>';
}
echo '</table>';
// anders geef deze foutmelding
} else {
echo 'Geen data gevonden';
}
?>
// eerst verbind je naar de database
$link = mysql_connect('localhost','localuser','localpasswd');
mysql_select_db('localdb',$link);
// daarna probeer je een query uit te voeren
$sql = 'SELECT voornaam, achternaam, adres, plaats, email
FROM adressen
WHERE voornaam = "dennis"';
$res = mysql_query($sql,$link);
if ($res && mysql_num_rows($res) >= 1)
{
// begin tabel
echo '<table border="10">
<tr>
<td><b>Voornaam</b></td>
<td><b>Achternaam</b></td>
<td><b>Adres</b></td>
<td><b>Plaats</b></td>
<td><b>Email</b></td>
</tr>';
while ($row = mysql_fetch_array($res))
// laat resultaat zien in tabel
{
echo '<tr>
<td>'.$row['voornaam'].'</td>
<td>'.$row['achternaam'].'</td>
<td>'.$row['adres'].'</td>
<td>'.$row['plaats'].'</td>
<td>'.$row['email'].'</td>
</tr>';
}
echo '</table>';
// anders geef deze foutmelding
} else {
echo 'Geen data gevonden';
}
?>
Ah fijn, daarmee krijg ik dus alle resultaten uit de database met de naam dennis.
Hoe kan ik hier een zoekveld voor maken dat als ik bijvoorbeeld intyp "Dennis" en dan op zoeken klik dat hij dan pas de zoekopdracht doet en dat hij dan die resultaten in een tabel laat zien.
Verder bijvoorbeeld ook dat als ik bijvoorbeeld "Michael" intyp dat hij in dat geval de resultaten voor "michael" laten zien mochten die bestaan, zo niet? die error.
Nogmaals, ik ben echt echt beginnend in php, maar ik vind het wel erg leuk! ik hoop dat jullie me hiermee kunnen helpen.
Dennis
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$naam = mysql_real_escape_string($_POST['naam']);
$sql = "
SELECT kolommen
FROM tabel
WHERE naam = '".$naam."'
";
// query uitvoeren en data echoen
}
else
{
// formulier is niet verzonden
// formulier tonen?
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$naam = mysql_real_escape_string($_POST['naam']);
$sql = "
SELECT kolommen
FROM tabel
WHERE naam = '".$naam."'
";
// query uitvoeren en data echoen
}
else
{
// formulier is niet verzonden
// formulier tonen?
}
?>
Ik laat altijd bij zoekopdrachten alle tekens in hoofdletters plaatsen (upcase) van zowel het zoekwoord als bij de zoeknaam. Een kleine letter en hoofdletter zijn verschillen Dennis is een ander woord dan dennis.
Succes Dick
Dat heb ik nog nooit eerder gehoord, de meeste doen het naar lowercase om te kijken of de naam al voor komt in de tabel.
Maargoed, naar upcase veranderen doe je eigenlijk hetzelfde.
@TS
Met de methode van Dick zoekt die 'Dennis, dennis, DeNnIs' enzovoort.. dus het maakt dan niet uit waar hoofdletters staan.
In het geval van de TS wordt er dus geen onderscheid gemaakt tussen 'Dennis' en 'dennis' of 'DENNIS'.
Zie ook de paragraaf over hoofdletter gevoeligheid uit de mysql handleiding.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit