autonummering database probleem

  • Onderwerp starter Onderwerp starter rxr
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

rxr

Gebruiker
Lid geworden
24 okt 2008
Berichten
105
Hallo,

Ik zit met een practisch probleem. Als ik een klant toevoeg in mijn database dan wordt zijn klantnummer automatisch gegenereerd in de database door middel van autonummering. Echter als ik daarna een product aan mijn klant wil koppelen heb ik dus zijn klantnummer nodig maar die heb ik niet omdat die gegenereerd wordt in mijn database.

Mijn vraag is dus, is het mogelijk dat ik kan opvragen wat de volgende nummer wordt zodat ik die alvast in mijn post variable kan zetten. Anders zou ik eerst moeten opzoeken wat zijn klantnummer is door middel van zijn voor, achternaam, geboortedatum etc maar als ik dat kon vermijden zou dat mooier zijn aangezien er een kans is dat iemand dezelfde naam heeft en wellicht ook nog op het de zelfde dag geboren is.

Alvast bedankt
 
Je zult toch echt eerst de klantgegevens moeten opzoeken.

Tardis
 
De klant die zich als laatst geregistreerd heeft die heeft normaal gesproken ook het hoogste KlantId, dus volstaat het om iets als het volgende te schrijven:

[cpp]
select KlantId from Klanten order by KlantId desc limit 1
[/cpp]
 
Heb ik ook al over nagedacht maar dan als ik met meerdere mensen op het kantoor bezig ben heb ik een kans (ook al is deze niet erg groot) dat als we met 2 mensen tegelijk bezig zijn het verkeerde product aan de klant wordt gekoppeld. Kan ik de database blokken totdat de gewenste gegevens zijn opgevraagd.
 
Bedankt voor het brainstrormen ik ben er denk ik uit. Ik ga beide methoden combineren. Ik vraag het laatste klant id op en kijk als de gegevens overeen komen met wat net ingevoerd is. Als dat niet het geval is vang ik het af.

Bedankt. Ik laat hem nog even op onopgelost staan wellicht heeft nog iemand een beter idee maar alvast bedankt.
 
ff voor de duidelijkheid.
De klant is al aangemaakt in een database.
en je wilt voorkomen dat er 2mensen tegelijk produckten invoeren voor een en dezelfde klant.

Als je dan in de table van de klanten een column maak waar je een boolean opkunt slaan.
Als je op het invoerscherm eerst de klantgegevens laat laden en kijkt of de boolean true is(dan is iemand anders bezig met die klant)
Als de boolean false is, dan laat je hem tijdelijk op true zetten.
En als je de gegevens verwerkt zijn zet je de boolean weer terug op false voor de volgende gebruiker.

Als veiligheid kun je nog een column maken waar je de tijd in opslaat van het moment dat de boolean op true gezet is.
Op deze manier kun je ondervangen dat iemand de browser heeft afgesloten zonder dan de boolean is terug gezet.
Tijdens het ophalen van de klant gegevens kun je dan kijken of er een tijd is opgeslagen, en als die tijd bv. meer dan 30minuten geleden is
dat je dan de boolean negeer omdat het dan aannemelijk is dat er iets mis gegaan is met de boolean terug zetten.

Dit is alleen maar een gedachteloop van hoe je het zou kunnen aanpakken!
 
Of dat klantenid van je laat je random genereren door een php script, ipv de auto_increment functie van mysql! Gebaseerd op tijd, en enkele andere gegevens, is de kans zeer klein dat er 2 dezelfde klantid's in je tabel komen...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan