Ik wil graag een database waarin bedrijfen per categorie worden opgeslagen.
Wat is het simpelst om te doen?
Elke tabel een categorienaam of alle categorien in 1 tabel?
Uiteindelijk wil ik een listbox maken met de waardes van de categorieen.
Het formulier word verzonden naar alle bedrijfen in de categorie die word geslecteerd in de listebox.
stel.. je hebt de form waar ook die listboxen in staan verzonden met post
dan zeg je:
<?php
$categorie = $_POST['listbox_naam']; //listbox_naam veranderen door de naam van de select
$query = mysql_query("SELECT * FROM bedrijfen WHERE categorie = '$categorie'") or die("er ging iets fout");
while($rij = mysql_fetch_array($query)){
echo $rij['naam'] . $rij['eigenaar'] . "<br>";
}
?>
ow sorry deed een beetje lang over mijn bericht waardoor ik niet zag dat er al geantwoord was :P
Lees eens iets over normalisatie. Het idee van normalisatie is dat je eendatabase creërd waar je jezelf geen kans geeft fouten te maken, en de snelheid zo hoog mogelijk te houden (in het kort).
Jouw bedoeling:
Je hebt bedrijven, die ingedeeld moeten worden in categorieën. Dus heb je al 2 tabellen nodig, bedrijven en categorieën.
categorieen - id
- naam
- etc
bedrijven
- id - cat_id
- naam
- adres
- etc
De vetgedrukte velden moet je 'aan elkaar koppelen'. Dit houd in, dat je met invoegen van een bedrijf, het id van de categorie moet invoeren bij veld cat_id.
Dus bv: bedrijven
id | cat_id | naam
1 | 1 | Stookolie BV
2 | 1 | Benzine&Co
3 | 2 | Winderig NV
4 | 2 | Water&Co
categorieen
id | naam
1 | Fossiele brandstoffen
2 | Groene stroom
Zoals je ziet horen de bedrijven nu bij de juiste categorie, doordat je het juiste cat_id opgeeft, wat overeen stemt het id uit tabel 'categorieen'
Met de opzet van Willem-Jan kan 1 bedrijf in 1 categorie vallen. Dat is geen probleem, maar je moet wel 100% zeker weten dat een bedrijf NOOIT in 2 categorieen valt, dan heb je namelijk een probleem...
Ik zou het met een koppeltabel oplossen om die flexibiliteit wel te hebben:
categorieen
- id
- naam
- etc
bedrijven
- id
- naam
- adres
- etc
koppeltabel
- id
- id_bedrijven (foreign key met bedrijven)
- id_categorieen (foreign key met categorieen)
Zorg er wel voor dat in de koppeltabel de combinatie id_bedrijven + id_categorieen de eigenschap UNIQUE meekrijgt. Dan kun je nooit dubbele waardes in de database krijgen.