Identifiant unique

Fermé
Mixxx - 28 nov. 2011 à 09:46
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 - 28 nov. 2011 à 10:49
Bonjour,

J'aurai besoin de vos lumières :P

Je souhaiterais pour chaque entrée dans ma table créer un identifiant unique généré aléatoirement.

Je m'en servirais pour mettre à la fin des adresses.
Exemple : www.monsite.com/fiche.php?id=XXXXXXXX

Il me faudrait 8 caractères, mais il ne faudrait pas qu'une entrée ai le même identifiant (il va y en avoir énormément).

Je ne souhaite pas utiliser un id en auto incrément. Il faut que l'identifiant soit composé de 8 caractères. Des lettres de préférence.

Quelqu'un sait comment je peux faire ?
Si je peux éviter une requête pour vérifier si l'identifiant n'existe pas déjà ça serait encore mieux. Je ne souhaite pas effectuer trop de requête.
Il me semble qu'il existe une fonction php pour ça mais je n'en suis plus très sur.

Merci d'avance pour votre aide !



1 réponse

le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
28 nov. 2011 à 10:49
Salut !

Ben si tu commences avec un ID qui vaut 00000001, tu peux l'incrémenter, ça fera 2. Et ensuite compléter avec des zéros jusqu'à obtenir 8 chiffres au total.

Le fonction qu'il te faut, c'est STR_PAD :

$id = str_pad($id++, 8, "0", STR_PAD_LEFT);

=> Le nouvel ID sera l'incrémentation du précédent ($id++), il fera 8 caractères (8) et s'il manquent des caractères pour arriver à 8, il seront complétés avec des zéros ("0") par la gauche (STR_PAD_LEFT).

0