Unieke code generator
Ik zoek een script dat een unieke code maakt, die bestaat uit drie letters gevolgd door 3 cijfers, bijvoorbeeld ABC123 of ACB123 e.d.
Maar die code mag nog niet voorkomen in de database!
Dus als code ABC123 al bestaat, moet hij een ándere unieke code verzinnen.
Als die óók al bestaat moet hij wéér een andere code bedenken enzovoort enzovoort...
Wie kan mij helpen?
Hellolo.
ik zou dan 6 keer die functie gebruiken. 1 keer voor de eerste letter, 1 keer voor de 2e letter enz.
dan die uitkomsten achter elkaar zetten zodat het 1 code wordt.
dan laat je hem zoeken in je database op dit code. en maak je een if statement dat als hij al voorkomt hij nog een code maakt en weer controleert, en als hij niet voorkomt, dat hij de code dan weergeeft.
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
if(mysql_num_rows($resultaat) == 0) {
doogaan met script
}else{
De code bestaat al dus weer een nieuwe code maken
}
Zoiets zou dat controleren doen volgens mij.
Gewijzigd op 22/10/2005 21:14:00 door Thom Snijders
Leuke puzzel! Ga ik even mee aan de gang.
Code (php)
Gewijzigd op 22/10/2005 21:51:00 door Thijs X
@ Stefan van Iwaarden: Dan moet je oneindig veel if-jes erin zetten, want stel die functie die je daarna maakt bestaat al. Dat moet je dan weer controleren. En bestaat die al, dan moet je wéér controleren.
Dus dit is niet echt een optie.
Bedankt voor je moeite en tijd en reactie.
@ Tom Snijders: Zelde als bij Stefan van Iwaarden.
Ook bedankt voor je moeite en tijd en reactie.
@ Sebastiaan: Die gaat ook niet eeuwig door.
Ook bedankt voor je moeite en tijd en reactie.
@ Jan Koehoorn: Ja die bedoelde ik!!!
Ook bedankt voor je moeite en tijd en reactie.
Allemaal hartelijk bedankt!
EDIT:
Thijs, die van jouw controleert ook niet [ eeuwig ] door.
Gewijzigd op 22/10/2005 21:55:00 door Hellolo
Edit @ jan
Dit is wel beetje overdreven tog?
Code (php)
Kan je stuk makkelijker gewoon rand(0,9) doen
scheelt weer wat tijd :P
Gewijzigd op 22/10/2005 21:58:00 door Thijs X
@ thijs: klopt, maar dat levert een int op en geen asci character, dus als je ze daarna gaat koppelen met de . operator dan krijg je iets anders.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
function maak_code () {
# hoofdletters: ASCI code 65 tot 91
$code1 = chr (rand (65, 90));
$code2 = chr (rand (65, 90));
$code3 = chr (rand (65, 90));
# cijfers: ASCI code 48 tot 58
$code4 = rand (0, 9);
$code5 = rand (0, 9);
$code6 = rand (0, 9);
$code = $code1 . $code2 . $code3 . $code4 . $code5 . $code6;
return $code;
}
echo maak_code();
?>
function maak_code () {
# hoofdletters: ASCI code 65 tot 91
$code1 = chr (rand (65, 90));
$code2 = chr (rand (65, 90));
$code3 = chr (rand (65, 90));
# cijfers: ASCI code 48 tot 58
$code4 = rand (0, 9);
$code5 = rand (0, 9);
$code6 = rand (0, 9);
$code = $code1 . $code2 . $code3 . $code4 . $code5 . $code6;
return $code;
}
echo maak_code();
?>
Hee wat staan er al veel codes op :-) De pagina wordt goed bezocht zie ik!
Gewijzigd op 22/10/2005 22:04:00 door Jan Koehoorn
Hehe ja ok :P maar hij vroeg alleen om Letters en Cijfers ;) :P
Generieke code :P
Nog even een vraag voor de beginners in PHP: hoeveel unieke codes kun je op deze manier genereren?
SanThe:
26*26*26*10*10*10 Zoiets was het toch?
Edit: Heeft weinig met php te maken.
Edit: Heeft weinig met php te maken.
nee, dan zijn ze niet uniek.
het is 26*25*24*10*9*8 (=11.232.000)
maar heeft idd weinig met php te maken.
Gewijzigd op 22/10/2005 22:18:00 door Stefan van Iwaarden
Gewijzigd op 22/10/2005 22:19:00 door Winston Smith
SanThe:
26*26*26*10*10*10 Zoiets was het toch?
Edit: Heeft weinig met php te maken.
Edit: Heeft weinig met php te maken.
Heee! Ik zei: voor de BEGINNERS!!! ;-)
En met de taal PHP heeft het inderdaad niets te maken. Maar ik vind wel dat dit soort vragen op te lossen moet zijn voor iemand die wil leren programmeren.
Gewijzigd op 22/10/2005 22:19:00 door Jan Koehoorn