Nu skal jeg så have tjekket efter i databasen, om nummeret allerede eksisterer, og det er ikke så besværligt. Men jeg må komme til kort hvis det skulle ske, at nummeret allerede findes og er så skal genereres et nyt. Hvad så hvis det nye allerede findes etc. etc.
Jo, det ville være lettest, men numrene skal være på flere cifre af flere grunde.
Horizon: Ja, det er jo en måde, men hvordan fortæller du den, at den skal starte forfra igen (der hvor du skriver »start forfra«). Jeg kan jo indsætte koden hele igen, men den skal jo helst blive ved med at tjekke uendeligt i det tilfælde, at den bliver ved med at finde et nummer, der allerede eksisterer ...
(gik ud fra at han ikke havde den mulighed (hvorfor ved jeg ikke... nå!))
->grinebidder
nu vil jeg sige du skal bruge "auto_increment" som arne_v pointerer, men ellers er du i en situation hvor du kan få brug for at kalde funktionen flere gange, så opret koden første gang i en funktion, så kald funktionen, så er det hele så meget nemmere og hurtigere.
Ja, men nu vil jeg ikke bruge auto_increment, da den allerede bruges én gang i denne række.
Horizon: Vil du så ikke lige fortælle mig, hvordan jeg skal lave lave funktionen, for at den bliver ved med at loope indtil den finder et nummer, der ikke er brugt?
nu har jeg ikke testet om det virker, men ser umiddelbart sådan ud, men du skal kalde SkabID(), ikke LoopID(). Hvis du ser i SkabID(), så kalder den automatisk LoopID() når den har lavet nummeret.
Jeps, det fandt jeg også ud af lige da jeg havde skrevet her, hehe. Anyway, den står bare og loop'er og giver til sidst en timeout :/ Der hvor du skriver 'Resultat', er det så ligegyldigt hvilken kollonne, jeg angiver her?
der i mysql tråden hvor der står Resultat skal du ikke ændre noget, det er det som variablen hedder nede i $hits[Resultat], det eneste du skal ændre er hvordan du skaber forbindelse til databasen, samt der hvor der står `DinTabel` skal jo være den table den skal checke efter... ID er den kollone som den skal se efter
horizon, Dem har du heller ikke med i dit script ;) Den kode du har brugt producerer samme resultat som min ene linje ;) Jeg går ud fra at 00001-09999 ikke "ser godt nok ud" ;) For ellers var det jo bare at lave:
I mit oplæg skulle det første tal være mellem 1 og 9, så det er rigtig nok, hvad coderdk siger. Men det fungerer stadig ikke, her er, hvad jeg har til at stå:
$hent = mysql_query("SELECT COUNT(*) AS 'Resultat' FROM tjek_user_info WHERE medlemsnr='$medlemsnummer'");
lav et felt i databasen med auto_increment og så int(10) fx og sæt det til at være unikt.
Hvis du så vil starte med 100.000, så indsætter du en række, hvor du SELV angiver en værdi i det felt, som du lige har sagt at databaseb selv skal udfylde. Her skriver du 99.999.
Næste række vil så starte med 100.000 og du har dit flere-cifret tal.
Har lige læst overstående igennem og ser nu at du allerede har ét felt som har auto_increment og derfor ikke kan bruge det igen.
Istedet kan du oprette en tabel som kun har ét felt, der fx hedder medlemsnummer og der sætter du en værdi til fx. 100.000 og fremover når du så oprettet en bruger, så fixer du en kode som gør følgende:
Tag det nummer som står i tabellen "medlemsnummer" og brug det. Forøg nummeret i medlemsnummer med 1, således det er klar til brug igen.
Du har to fordele - du får fortløbende numre og du kan selv bestemme hvilket nummer der skal starte, ligesom du ved hvilket nummer en ny eventuelt bruger vil få.
coderdk: Tak. Hvis du opretter et svar deler jeg point mellem dig og horizon.
freegeg: Nu var det ikke fordi jeg ville have en unik serial men bare et unikt nummer.
fynbo: Jep, det er også en mulighed, men så kan kan jeg jo i princippet ligeså godt bruge det autogenererede id, der allerede er i min tabel. Der er ikke meget random over en automatisk stigning ...
korrekt, altid det problem... vis man elsker at scripte, kan man jo lave et lille program, man står i kø til får at få lavet et id.. så man sikker på at kun eet id bliver lavet af gangen, også man så ikke så uheldig at 2 id bliver oprette på nøjagtig samme tid... chancen for det sker, er ca. den samme somat vinde i lotto 2-3 gange i træk.. men det kan stadig ske i teorien.
med al respekt til arne_v jeg prøver ikke på at være sarkastisk, som programmør arbejder man jo i teori, så man skal tage hensyn til hvad der kan ske
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.