Door
Martijn nvt
op 19-01-2014 20:57
gewijzigd op 20-01-2014 10:43
4.855 views
Goeden avond allemaal
Ik heb een vraag, ik ben bezig met een webwinkel.
ik heb mijn website bijna af, maar mis alleen nog een functie voor factuurnummers.
Ben al een tijdje bezig en op zoek naar een uitleg met MySQL,maar ik kom er echt niet meer uit.
Kan iemand mij misschien een zetje geven in de goeie richting?
Je kunt daar natuurlijk eindeloos over discussiƫren, ik denk dat het ook een beetje met de omvang van je administratie te maken heeft.
Als je een paar duizend facturen per maand uit geeft, wil je toch wel overzicht houden.
Het handboek ondernemen en de belastingdienst komen steeds terug in discussies als deze. De belastingdienst maakt er geen issue meer van is mijn, overigens ruime, ervaring. Bij webshops blijft het een probleem, een koper kan zelfs tijdens de ideal transactie afhaken, de browser sluiten, de netwerkverbinding verliezen etc. Op welk moment maak je het opeenvolgende factuurnummer en de pakbon? Daarom eigenlijk niet in de webshop maar pas bij fysiek verzenden cq tijdens de verwerking in het backoffice/magazijn. Daar wordt ook de factuur verzonden. Maak je de factuur toch wel in de php-webshop dan is gesloten opeenvolging vrijwel niet mogelijk. Maak je er dus ook niet druk om. Gebruik bijvoorbeeld de methode zoals Ger adviseert.
MySQL is niet ingewikkeld, maar omdat je niet met een auto increment werkt, moeten er wat zekerheden ingebouwd worden. Vandaar de transacties.
Die heb ik erin gezet om rekening te houden met een Multi-user omgeving, heb je dat niet kan je het ook gewoon in je applicatie regelen.
Ger ik heb nog een vraagje, ik ben nu zo ver dat ik geen erros meer krijg om in te loggen in mijn MySQL en table.
En heb u voorbeeld gebruikt en aangepast.
Maar zo ver ik het nu begrijp, van u voorbeeld is dat het alleen nog maar het aansturen is van 'b_seq_no' om van 001 -> 002 te maken.
En dan moet ik via php het weer opvragen met $result?
[size=xsmall]Toevoeging op 05/02/2014 16:59:49:[/size]
$sql="SET b_seq_no = (SELECT COALESCE(MAX(b_seq_no), 0) + 1 FROM tabelnaam WHERE b_year = YEAR(CURRENT_DATE) FOR UPDATE)";
$sql="INSERT INTO tabelnaam (b_year, b_seq_no) VALUES (YEAR(CURRENT_DATE), tabelnaam, '".$b_factuurnummer."')";
[size=xsmall]Toevoeging op 05/02/2014 17:01:16:[/size]