Zonet heb ik een eenvoudig bestelformulier aangemaakt.
Alle artikelen worden uit de database gelezen en indien je een artikel wil bestellen zet je het gewenste aantal bij het artikel. Elk artikel heeft dus zijn eigen kleine invulveldje. Graag had ik elke bestelling ook bewaard in een aparte tabel. Mijn vraag is nu hoe ik op een correcte manier deze gegevens kan opslaan. Bij het bestellen van 1 artikel is er natuurlijk geen probleem maar hoe kan ik best meerdere artikels opslaan waarbij het toch duidelijk is dat deze bij 1 bestelling horen? Bij elk artikel van de bestelling wordt momenteel een nieuwe rij aangemaakt en ik heb niet onmiddelijk een idee hoe ik deze verschillende rijen kan koppelen aan 1 bestelling...
Je hebt bijvoorbeeld 2 tabellen (wel meer, want het is handig om te normaliseren):
Bestelling en Producten
In bestelling staat wie, wanneer enzo. Deze heeft een ID
Bij producten staat welk product en een parent (bij welke bestelling hij hoort) (deze heeft natuurlijk ook een ID, om te indexeren)
Het normaliseren is goed verlopen maar ik begrijp nog niet hoe ik de gegevens in de database krijg. Het lijkt me niet moeilijk maar ik geraak er niet uit.
Wanneer ik de bestelling doorvoer wil ik een nieuwe pagina met het overzicht van de bestelling. Hoe kan ik nu alle producten checken of hun aantal niet gelijk is aan 0?
Maak ik een functie op de pagina waar ik het aantal moet invullen of controol ik alles op de pagina die een overzicht geeft van de bestelling? Misschien kan ik van het invulveld 'aantal' een array maken die ik dan doorloop?
Het overzicht van de bestelling, is lijkt me niets meer dan het verwerken van een ingevuld formulier? Voor elk product kun je de bijbehorende ingevulde waarde uitlezen en controleren of deze gelijk is aan 0.
Is dit niet het geval, dan kun je het product en het aantal in het overzicht weergeven. Als de gebruiker de bestelling bevestigt, schrijf je het hele gebeuren pas weg naar de database.
Het loopt nu mis bij het verwerken van het formulier.
Ik zit volledig vast bij het controleren van het invulveld.
dit is het overzicht van de artikelen...
<? while ($products = mysql_fetch_object($products_q)){
<tr>
<td> print($products->product_nr); </td>
<td> print($products->description); </td>
<td> print($products->price); </td>
<td><input name="aantal" type="text" class="form" /></td>
</tr>
} ?>
Hoe kan ik nu enkel de artikelen doorsturen waarbij het aantal verschilt van 0? Dit lijkt me zo'n domme vraag maar ik geraak er echt niet uit... Ik heb geprobeerd om dit met een array te doen maar dat loopt volledig mis...
Het probleem dat ik nu heb heeft eigenlijk niets te maken met de structuur van mijn database. Ik begrijp gewoon niet hoe ik de gegevens van het invulveld naar een volgende pagina kan sturen. Het invulveld zit in een loop dus ik vermoed dat voor de naam van het veld een array moet gebruiken maar dat loopt helemaal mis... Misschien weet iemand hier een oplossing voor?