Zoeken in Database
Ik heb een database waarin objecten worden gezet met verplichte velden.
Al deze objecten moeten minimaal een waarde hebben voor:
- Land
- Provincie
- Plaats
- Type
Daarnaast zijn er nog 10 verschillende invoervelden...
########### PROBLEEM ######
Ik wil dus dat de gebruiker kan zoeken in de database op de bovengenoemde punten.
1. Is het verstandig om die 4 punten in 4 aparte tabellen op te slaan, zodat je geen dubbele types krijgt (of anders gespelde plaatsnamen bijvoorbeeld)?
2. Als ik alles in een tabel opsla, bijvoorbeeld "objecten", hoe kan ik er dan voor zorgen dat alle plaatsen in een dropdownmenuutje komen zonder dubbele items?
(dropdowntje creëeren is geen probleem, alleen heb ik er nu dubbele items in staan. Bijvoorbeeld 4x Noord-Holland bij Provincie)
#####################
Ik post niet zoveel, maar ben geen newbie meer ;-)
Gewijzigd op 01/01/1970 01:00:00 door Tom Hes
in het ideale geval heb je geen verdubbelingen in je DB. Als je bijvoorbeeld een tabel 'provincies' zou hebben, dan komt daar, als het goed is, maar één keer Noord-Holland in voor. Een dropdown menu zou je dan zo kunnen maken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$sql = "
SELECT id, naam
FROM provincies
ORDER BY naam ASC
";
if (!$res = mysql_query ($sql)) {
trigger_error (mysql_errno () . ': ' . mysql_error ());
echo '<pre>';
echo $sql;
echo '</pre>';
}
else {
echo '<select name="provincies">';
while ($row = mysql_fetch_assoc ($res)) {
echo '<option value="' . $row['id'] . '">' . $row['naam'] . '</option>';
}
echo '</select>';
}
?>
$sql = "
SELECT id, naam
FROM provincies
ORDER BY naam ASC
";
if (!$res = mysql_query ($sql)) {
trigger_error (mysql_errno () . ': ' . mysql_error ());
echo '<pre>';
echo $sql;
echo '</pre>';
}
else {
echo '<select name="provincies">';
while ($row = mysql_fetch_assoc ($res)) {
echo '<option value="' . $row['id'] . '">' . $row['naam'] . '</option>';
}
echo '</select>';
}
?>
Is het dus verstandiger om 4 aparte tabellen te maken voor landen, provincies, plaatsen en types?
alleen dat vergt wel weer extra werk tijdens het invoeren. Als je een nieuw land hebt of een nieuwe plaats, moet je dat steeds eerst in de tabel zetten om vervolgens het object aan te kunnen maken.