IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

enregistement d'une référence aléatoire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut enregistement d'une référence aléatoire
    Bonjour,

    J'ai crée un formulaire d'enregistrement qui intègre une référence aléatoire.

    Le petit problème qui concerne cette enregistrement, est que je me suis aperçu qu'il y'avait des références identiques enregistrées pour des profils différents.

    Comment pourrai-je faire pour faire une vérification (quelle n'existe pas) avant un nouvel enregistrement?

    Voici la fonction qui me permet d'intégrer une référence aléatoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function numero() 
    {
    $chrs = 10 ; 
    $ref = "LUX-"  ;
    mt_srand ((double) microtime() * 1000000);
    while (strlen($ref)<$chrs)
    {
    $chr = chr(mt_rand (0,255));
    if (eregi("^[a-hj-km-np-z2-9]$", $chr))
    $ref = $ref.$chr;
    };
    return $ref;
    }
    Dois-je rajouter un if quelque part avant la requete ?

  2. #2
    Membre éclairé
    Avatar de titoon
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Avec une boucle while, tu devrais pouvoir t'en sortir :
    nouvelle_reference = numero();
    tant qu'il y a des enregistrements avec reference = nouvelle_reference {
    ..nouvelle_reference = numero();
    }
    ici, on est sur nouvelle_reference est une référence unique

  3. #3
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    sinon si t'as une clé primaire en auto-increment, tu peux l'ajouter à la fin de ta réf.
    bye

  4. #4
    Membre éclairé
    Avatar de titoon
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Citation Envoyé par Djakisback
    Salut,
    sinon si t'as une clé primaire en auto-increment, tu peux l'ajouter à la fin de ta réf.
    bye
    Pas bête, ajoute quand même un séparateur, sinon tu peux avoir des problèmes (un tiré par les cheveux, mais bon... ) :
    reference : abc12, clef primaire : 3
    reference : abc1, clef primaire : 23
    sans séparateur : abc123 pour les 2
    avec séparateur : abc12-3 et abc1-23

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Dans son cas c'est pas nécessaire car sa fonction lui retourne obligatoirement une chaîne de 10 caractères ^^

  6. #6
    Membre éclairé
    Avatar de titoon
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Ooops

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    Ce ne serait pas plus simple de vérifier si la référence existe déjà où non, comme pour une adresse mail?

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    elseif  ((mysql_num_rows(mysql_query("SELECT 1 FROM util 
    WHERE email = '".$frm['email']."'")) > 0)
    ) {
    $erreurs['email'] = true;
    $msg['email'] = " Cette adresse électronique existe déjà";
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Ajouter dynamiquement une référence
    Par jpharand dans le forum VBA Access
    Réponses: 23
    Dernier message: 16/04/2010, 23h28
  2. Comment stocker une référence vers un TTreeNode ds un DFM ?
    Par phplive dans le forum Composants VCL
    Réponses: 1
    Dernier message: 19/07/2005, 12h33
  3. [SOAP][Web Service] erreur création d'une référence Web
    Par Maximil ian dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 20/06/2005, 13h29
  4. comment obtenir une ligne aléatoirement
    Par titoumimi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/05/2005, 15h52
  5. Une référence à un élément de sa propre table
    Par szdavid dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/06/2004, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo