Hallo,

Ik heb een vraag en misschien is het heel makkelijk, maar ik ben hier al een tijdje mee bezig. Ik heb een facturatiesysteempje. Maar nu begin ik bijvoorbeeld bij F2008001. Nu wil ik dit elke keer als ik een nieuwe factuur aanmaak automatisch ophogen. Hoe doe ik dit en hoe kan ik dit het beste doen. Dus wanneer ik na deze factuur een nieuwe factuur maak, staat er in mijn formulier gelijk F2008002.

Alvast bedankt.
Mvg Paul
Het is wat algemeen... maar je doet dit:

- Selecteer je hoogste/nieuwste factuur in je database en haal je factuurnummer op
- Tel daarbij 1 op.
- Maak je factuur vast aan in je database, maar vul die nog niet in... zolang het ID maar gemaakt wordt.
- Geef dat ID weer op je factuur-ding.


Het kan ook korter:
- Voeg een nieuwe rij toe aan je database, maar niet ingevuld (behalve ID).
- Haal je ID van je nieuwste op.

Verschil: je hoeft er niet 1 bij op te tellen. En je hebt het ID direct beschikbaar.

Succes.
Kijk eens naar mijn post in dit topic. Dat lijkt er aardig op volgens mij.
In PGSQL kun je geloof ik daar een sequence van maken, in MySQL weet ik niet.
Zoals Eddy al zei:
maak een tabel in je database aan met facturen en zat daar al je velden in die je nodig hebt.
(ID (met auto_increment), datum, prijs, ...)
Wanneer je op je knopje "Maak nieuw factuur op" klikt maak je een nieuwe rij aan (database verhoogt dankzij die auto_increment automatisch het ID nummer). Je vult je factuurtje in en je slaat het op in de database.
Klaar!
Gewoon het factuur nummer een autoincrement maken, evt zonder de voorloop F. De factuur aanmaken, dmv de insert opdracht.

En om er dan zeker van te zijn dat je de juiste ID krijgt, gebruik je mysql_insert_id() Deze retourneerd de id wat geinsert is bij je sql query.
Beter dan een neiuwe query starten om de laatste ID op te halen, wat gevaarlijk is als er meerdere mensen tegelijk facturen aanmaken
Danny schreef op 17.07.2008 21:42
Gewoon het factuur nummer een autoincrement maken, evt zonder de voorloop F. De factuur aanmaken, dmv de insert opdracht.

En om er dan zeker van te zijn dat je de juiste ID krijgt, gebruik je mysql_insert_id() Deze retourneerd de id wat geinsert is bij je sql query.
Beter dan een neiuwe query starten om de laatste ID op te halen, wat gevaarlijk is als er meerdere mensen tegelijk facturen aanmaken


Meerdere mensen kunnen geen facturen aanmaken met zijn probleem en ik denk dat als meerdere mensen op hetzelfde ogenblik zo'n factuur zouden aanmaken, er nog altijd geen probleem is hoor. (+ de kans dat ze allemaal op dezelfde microseconde een factuur aanmake is zeer, zeer klein.)
Dat is geen reden om het niet op de manier te doen zoals het hoort.
Feit, maar om het een foute manier te noemen is dan ook wel overdreven naar mijn mening.
Jens schreef op 17.07.2008 20:58
Zoals Eddy al zei:
maak een tabel in je database aan met facturen en zat daar al je velden in die je nodig hebt.
(ID (met auto_increment), datum, prijs, ...)
Wanneer je op je knopje "Maak nieuw factuur op" klikt maak je een nieuwe rij aan (database verhoogt dankzij die auto_increment automatisch het ID nummer). Je vult je factuurtje in en je slaat het op in de database.
Klaar!

Slecht idee. Het id gebruik je alleen intern in een database en nergens anders voor. Voor de fiscus moeten alle factuurnummers opeenvolgend zijn. Er mogen ook geen gaten in de reeks voorkomen. Als je eens een keer een factuur delete, klopt je systeem niet meer als je van een auto_increment veld uitgaat.
Dat had ik inderdaad over het hoofd gezien.

Reageren