Hallo,

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...

Alvast bedankt!
een bestelling id meegeven?
Toevoeging op Sven:

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)

Ik hoop dat dit duidelijk genoeg is.

[edit]
Hier 2 tutorials over normaliseren:
- Klaasjan Boven
- Elwin
[/edit]
Jaja, maar als je om een zo'n kleine toevoeging nou gelijk je hele database meot gaan normaliseren... :)

EDIT: Sorry, ik krijg nu natuurlijk weer reacties dat je altijd moet normaliseren. Het is maar hulp, en als iemand dat nog niet heeft gedaan...
Bedankt voor de snelle reactie.
Ik probeer het morgen uit
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.

Het probleem:

product_nr prijs aantal(invuldveld)
product1 50 2
product2 20 0
product3 30 1

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...
Niemand die een oplossing hiervoor heeft?
Het zou mij enorm vooruit helpen...

groetjes
Producten:
ProductID
Naam
Beschrijving
Prijs

Bestellingen:
BestellingID
KlantID
ProductID
Aantal

Wat jij nu wil, alles in 1 tabel stoppen _kan_ niet. Punt, geen verdere discussie over mogelijk...
Momenteel ziet mijn database er als volgt uit:

ORDER:
order_id
order_date

CUSTOMER:
customer_id
name
address
phone
mail

PRODUCTS:
product_nr
description
price

ORDER_PRODUCT:
order_id
product_nr
quantity
delivery_date

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?

Reageren