Hej Varför inte låta databasen sätta ett nummer automatiskt? Nummret jag snackar om är 10 siffror långt..går det bra iaf? ska kika lite på det hmmm, varför "måste" talet vara 10 siffror långt? verkar krångligt...Kontroll av tidigare värden (for sats(?))
Jag arbetar med en sida där man anmäler sig och alla får ett nr (slumpas fram). Alla måste ha ett unikt nr, därför vill jag att när man anmäler sig så ska man gå igenom alla andras nr i databasen och ser om det är samma.
Vet inte riktigt hur man ska lösa detta, en for sats skulle vara lämplig, bara det att jag vet inte hur man skriver dom i ASP :>
Skriv och förklara gärna hur man ska lösa detta.
Använder mig utav en access databas.
fältet där nummret står heter bnr.
Tack!Sv: Kontroll av tidigare värden (for sats(?))
Jag vet inte vad du har för databas, men i access kan du väja räknare som datatyp och antingen ha stegvis uppräkning eller slumpad.
Jag vet ingen databas som inte har någon sorts räknare som datatyp...
FredrikSv: Kontroll av tidigare värden (for sats(?))
Sv: Kontroll av tidigare värden (for sats(?))
Testa typ
<code><%
'Ta fram ett slumptal
Randomize
slump=Int(666*Rnd+1) 'Eller något annat fiffigt, tex din metod för 10-siffrigt tal
noUserExists=False
' Loopa till dess ett unikt slumptal har hittats
DO UNTIL noUsrExists
'Läs in data från user-tabellen
SET RS=conn.execute("SELECT bnr FROM user WHERE bnr="&slump&"")
'Kolla om det redan fanns
IF RS.EOF THEN
'Hittade ingen användare med slumtalet som bnr
noUserExists=True
ELSE
'Det fanns tydligen en användare med slumptalet som bnr,
'ta fram ett nytt slumptal
Randomize
slump=Int(9999*Rnd+1)
END IF
Loop
Response.Write("Lyckades skapa ett unikt slumpnummer: "&slump)
%></code>
Men jag tycker nog fiddeh har rätt. Kör med en automatisk räknare!
Om numren ändå inte ska ha någon innebörd mer än identifierare så kan du nöja dig med mindre tal.