Eindeutige ID erstellen

deepgreen

Erfahrenes Mitglied
sodala, ich brauche eine eindeutige ID, jedoch möchte ich nicht das ganze über 15 zeichen lang haben.

der timestamp ist zwar gut aber wenn was zu schnell verarbeitet wird kann es zu doppelten IDs kommen und die möchte ich nicht haben.

sprich, wie erzeuge ich eine eindeutige ID oder wie kann ich das script ganz kurz anhalten, damit sich der timestamp verändern kann??
 
-

Also wenn du per SQL eine ID per auto_increment mitzählen lässt, dann wird es immer nur eine ID geben.

Was du mit dem Timestamp meinst, kann ich im Moment nicht nach vollziehen, aber du kannst ein Script per sleep(sekunden)anhalten.
Kannst das Problem ja nochmal genauer erklären.
 
mit dem Anhalten des Scripts besteht das Problem aber rein theoretisch immer noch. Nämlich genau dann, wenn 2 User zufällig zu haargenau der gleichen Zeit das Script aufrufen.

am besten ist (wie TimeFlash schon geschrieben hat) die auto_increment-Funktion von MySQL. Zusätzlich kann man dort noch angeben, daß in der ID-Spalte keine doppelten Werte vorkommen dürfen. (UNIQUE=yes)


Dunsti
 
PHP:
function FncRandomString ($nAnzahl) {
	srand(date("s"));

	$strZeichen = "ABDNOUVYZ".time();
	$strRandom = "";	

	while (strlen($strRandom) < $nAnzahl){	
		$strRandom .= substr($strZeichen,(rand()%(strlen($strZeichen))),1);
	}	
	return ($strRandom);
}

$unique = FncRandomString(8);
 
Die Funktion eigenet sich auch hervorragen zur Password Generation. Du kannst die Variable strZeichen beliebig erweitern. Zum Beispiel mit IP oder sowas.

Wenn du für eine aktuelle Session eine absolut eindeutige ID brauchst kannst du auch mit unique() arbeiten!
 
@fata: warum sollte dein script einzigartige id's kreieren?
es wird doch lediglich eine zufallsfolge aus dem zeichensatz gebilden, also besteht doch noch immer die gefahr, gleichartige strings zu erzeugen...
oder seh ich das falsch?
 
Ich habe doch geschrieben das wenn er eine absolut eindeutige ID braucht das er mit uniqe() arbeiten soll.

Aber ich denke das es relativ selten vorkommt das bei einer 10-stellingen Zahl eine doppelt vorkommt :D
 

Neue Beiträge

Zurück