login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bestellingen uitlezen (Opgelost)

Offline Guardian - 09/11/2007 22:58 (laatste wijziging 09/11/2007 22:58)
Avatar van GuardianNieuw lid Hallo allemaal,

Ik ben hier al een tijdje op aan het zoeken maar heb het gevoel dat ik het veel te moeilijk aan het maken ben, en dus omdat ik er zo op zit te turen de oplossing niet meer zie.

Daarom post ik het hier even

Het gaat als volgt,

Ik heb een tbl bestellingnen, hierin volgende velden:

id, UserID, ProdID

Dus elk besteld artikel staat hierin met de betreffende UserID.

Nu wil ik eenvoudigweg de bestellingen uitlezen, maar dit heeft als gevolg dat indien een user meerdere artikelen besteld, zijn naam meermaals zal worden weergegeven (omdat zijn userid meermaals voorkomt in de tbl bestellingen).

Nu wil ik gewoon dat elke naar 1 keer weergegeven zal worden;

Kan iemand me even op weg helpen?

Dank u ! 

5 antwoorden

Gesponsorde links
Offline ranco - 10/11/2007 00:17
Avatar van ranco PHP gevorderde MYSQL functie: DISTINCT.

Zoek hierop een je hebt je antwoord
Offline Gerard - 10/11/2007 00:38
Avatar van Gerard Ouwe rakker Je database opzet is dus niet in orde. Op deze manier zeg je namelijk:
1 bestelling wordt gemaakt door 1 user en kan maar 1 product bevatten.

Misschien toch slim je database dus voortaan anders in te richten.
Offline Guardian - 10/11/2007 00:42
Avatar van Guardian Nieuw lid
Proximus schreef:
Je database opzet is dus niet in orde. Op deze manier zeg je namelijk:
1 bestelling wordt gemaakt door 1 user en kan maar 1 product bevatten.

Misschien toch slim je database dus voortaan anders in te richten.

Hoe zou jij dit inrichten proximus?

Ik sta altijd open voor vernieuwing 
Offline Gerard - 10/11/2007 00:49 (laatste wijziging 10/11/2007 00:59)
Avatar van Gerard Ouwe rakker Ik zal eens even uitwerken hoe ik altijd mijn databases opzet voor een standaard webshop. Zal deze post zo updaten.

  1. Order
  2. +---------+-----------+---------+---------------+
  3. | orderId | orderDate | userId | orderStatusId |
  4. +---------+-----------+---------+---------------+
  5. | INT (n) | DATETIME | INT (n) | TINT (2) |
  6. +---------+-----------+---------+---------------+

De tabel order houdt voor mij precies bij welke orders er zijn geplaatst. Een order heeft een eigen uniek id. In dit geval heb ik geen lengte aangegeven voor de sleutel, maar dit kan je dan zelf aanpassen naar gelang je denkt dat de winkel veel/weinig te verwerken zal krijgen.

Van een order houd ik verder ook bij wanneer een order geplaatst is en voor welke gebruiker de order is. Als laatste houd ik ook een status bij van een bepaalde order. Deze statussen komen weer in een aparte tabel te staan, voor de volledigheid.

  1. OrderStatus
  2. +---------------+-------------+-------------+
  3. | orderStatusId | title | description |
  4. +---------------+-------------+-------------+
  5. | TINT (2) | VARCHAR(32) | TEXT |
  6. +---------------+-------------+-------------+

De order statussen hebben een titel en een omschrijving. De titel kan iets zijn als; 'openstaand', 'geannuleerd', 'in behandeling', 'wachtend op antwoord klant', 'afgerond'. De omschrijving geeft gewoon wat meer informatie over die bepaalde status.

  1. OrderRow
  2. +---------+----------+-----------+---------------+---------------+
  3. | orderId | row | productId | piecePrice | vat |
  4. +---------+----------+-----------+---------------+---------------+
  5. | INT (n) | TINT (2) | INT (n) | DECIMAL (7,2) | DECIMAL (4,2) |
  6. +---------+----------+-----------+---------------+---------------+

De laatste tabel die ik in dit voorbeeld uitwerk is de OrderRow tabel. Hier staan de verschillende rijen in van de bestelling. Het orderId is samen met het veld row de primaire sleutel. Het orderId verwijst dus naar de order waar deze rij bij hoort, de row is gewoon het getal op welke positie deze thuishoort in de factuur. Hier dien je dus zelf even een getal aan te geven. Ik heb er dus voor gekozen om hier geen primaire sleutel aan te maken in de vorm van orderRowId. Dat is meer een persoonlijke keuze, natuurlijk ben je hier vrij in om dat anders te doen.

Het productId verwijst natuurlijk naar het product, de pieceprice is de prijs van één enkel product. Daarnaast geef ik per product ook aan wat het BTW tarief is. Waarom sla ik hier de stuksprijs en de btw op? Wat nu als ik dat niet deed.... volgend jaar gaat de BTW in nederland naar 20% (eerder was het 19%) en wie weet verander ik ook de prijs van een bepaald product wel eens. Op deze manier ben ik er zeker van dat al mijn facturen nog steeds in orde zijn en de juiste informatie weergeven.

Een dergelijk systeem kan je natuurlijk altijd uitbreiden met een systeem voor kortingen en wat niet meer. Ik heb dit eigenlijk ook net uit mijn mouw geschud, maar het zou je genoeg houvast moeten bieden om zelf iets op te zetten.
Offline Guardian - 10/11/2007 01:09 (laatste wijziging 11/11/2007 20:55)
Avatar van Guardian Nieuw lid Verdorie Proximus,
Zeer mooi voorbeeld! ! !

Ik ga dit morgen gelijk beginnen bewerken en mijn systeem herwerken 

Alvast ontzettend bedankt,
Hulp als dit maken een forum superwaardevol en leerrijk!

Ik laat zeker nog van me horen hoe het verliep 

[EDIT]
Zoals beloofd laat ik nog even weten hoe het verliep.
Systeem volledig operationeel!

Heel erg bedankt voor de goede raad.
[/EDIT]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s