Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Hjælp til "Auto Increment" Pilot ID (...

Af Ultrabruger Shepred | 22-07-2013 01:19 | 1805 visninger | 4 svar, hop til seneste
Godaften! Jeg er igang med at lave et "Virtual Airline" som det hedder på englesk, men jeg er stødt på et problem. Jeg vil have folk til at registrere (som virker), men jeg vil have systemet til at automatisk tildele dem et et Pilot ID, f.eks. AVC001, AVC002 osv. Altså, AVC er koden for selskabet, og 001 el. 002 er nummeret på brugeren, så deres brugernavn bliver AVC-nummer. Et eksempel: "Welcome Michael, your Callsign is AVC004." Jeg håber det giver mening, hvis ikke, så spørg endelig! Jeg smider lige koden - er den rigtig, og er der andet der kunne være galt? Registrati- on Form Registration Form User Name: - User Password: - Email: - - alert('Please enter your Name!')"; exit(); } if- ($user_pass==''){ echo "alert('Please enter your Password!')"; exit(); } - if($user_email==''){ echo "alert('Please enter your email!')"; exit(); } - $check_email = "select * FROM pilots WHERE user_email='$user_email'"; $run = mysql_query($check_email); if(mysql_num_rows($r- un)>0){ echo "alert('Email $user_email already exists in database, please enter a different email!')"; exit(); } $- query = "insert INTO pilots (user_name, user_pass, user_email, callsign)values('$user_name', '$user_pass','$user_email')";- if(mysql_query($query)){ echo "alert('Registration Successful!')"; } //Gener- ate the Pilot ID function GenerateCallsign($id) { $callsign = 0; if($id9) { $callsign = 'AVC0'.$id; } if($id Tak på forhånd!
--
#1
Shepred
Ultrabruger
22-07-2013 01:21

Rapporter til Admin
Ja, det gik så ikke så godt med koden - her kan i se koden rigtigt: http://www.worldofwebcraft.com[...]
--
#2
SteffanS
Supporter
22-07-2013 07:34

Rapporter til Admin
Lige efter du har lavet din insert, burde du kunne lave en ny query som ser nogenlunde således ud: SELECT LAST_INSERT_ID(); Den vil retunere det ID din row har i databasen som du lige har inserted. Det kan du så bruge i din GenerateCallsign() funktion og indsætte resultatet fra den i databasen bagefter (Går ud fra det skal gemmes) med en query der laver en: UPDATE tablename SET pilot_id=$nytIDfåetFraGenerateFunktion WHERE ID=$IdFåetMedLastInsertedID pilot_id er bare et navn jeg har fundet på, ren gæt da jeg ikke ved hvordan din tabel ser ud. de forskellige variabler er også bare navne jeg har fundet på for at gøre det mere forståeligt.. tablename er selvfølgelig heller ikke korrekt i mit eksempel.. Håber det er til at forstå, det er mandag morgen og jeg har ikke sovet alt for meget i nat ;)
--
Kæmpe oprydnings salg: http://salg.ssdata.dk[...] Salg af nye 500GB diske: http://diske.ssdata.dk[...]
#3
Chucara
Ultra Supporter
22-07-2013 11:24

Rapporter til Admin
Du får lettere svært ved at bruge sekvenser i databasen, da jeg antager at du har flere forskellige fortløbende serier. Altså: AVC001, AVC002, DEF001 er alle gyldige værdier. Medmindre det skal være: AVC001, AVC002, DEF003 (de sidste tre cifre er unikke) er det nok lettest bare at gemme den højeste tildelte værdi i en tabel, og bruge denne. Altså noget i denne stil: PREFIX | NEXT_NO AVC | 3 DEF | 2 Huske at gøre alt i én transaktion, ellers kan du få huller i din sekvens hvis en query fejler. Et andet tip: Du kan bruge str_pad i PHP til at sætte 0'er foran dit tal uden at have helt så mange linjer kode.
--
MB: ASUS Z77 Sabertooth | CPU: i7 2600K | GPU: GTX 580 | RAM: 16GB 1866MHz | CASE: Silencio 550 | SSD: Samsung 830 | HDD: 1TB WD Black
#4
Shepred
Ultrabruger
22-07-2013 11:28

Rapporter til Admin
#2 Tak! Jeg kigger på det, og vender tilbage hvis den stadig ikke virker :-)
--

Opret svar til indlægget: Hjælp til "Auto Increment" Pilot ID (...

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning