Hallo
Hab eine Frage ob das auch noch besser geht
Ich möchte jedem User eine einzigartige ID zuweisen, dabei aber auf lange Zahlenkolonnen verzichten (z.B. ein 32-stelliger md5-hash)
Hab mal folgendes gemacht:
Erstmal die bereits vorhandenen IDs in ein Array laden:
PHP
$id_read = mysql_query("SELECT user_id FROM user_data");
while($id_obj = mysql_fetch_object($id_read)){
$idarr[] .= $id_obj->user_id;
}
Dann eine "Quasi-Endlosschleife" mit einem Zufallsgenerator, welche abgebrochen wird wenn die neu erzeugte ID nicht im Array vorhabden ist.#
PHP
$count = 0;
while($count < 999999999){
$createid = '';
$l = 8;
$string="abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for($i=1; $i <= $l; $i++)
{
$createid .= substr($string, mt_rand(0,strlen($string)-1), 1);
}
$check = in_array($createid, $idarr);
if ($check == 0){break;}
$count++;
}
}
Alles anzeigen
Da gibts doch sicher noch eine bessere Möglichkeit sollche IDs zu erschaffen?
Gruß, Donkey