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 :

Générer un identifiant (code) automatiquement


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
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Par défaut Générer un identifiant (code) automatiquement
    Bonjour,

    J'ai crée une table devis dans laquelle j'ai un identifiant unique qui s'incrémente.
    Je souhaiterais créer un identifiant différent pour le devis avec comme base :
    DEV08000001 où 08 représente l'année. Il faudrait qu'à chaque fois que je crée un devis que cet identifiant s'incrémente.
    Je vois pas du tout comment faire ...

    Je dois gérer de la même façon les commandes :COM08000001

    Est-ce que qqn peut m'aider?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,

    ben tu décomposes ton identifiant.

    Moi j'y voit trois parties :
    [type][année][numéro incrémenté]

    Le type n'a pas nécessairement besoin d'être stocké, l'année si, le numéro incrémenté aussi. Donc dans ta base lorsque tu vas créer tes tables. dans chacune tu vas rajouter une colonne de type integer, auto increment. Auto increment est un paramètre de la base de données qui permet d'auto incrémenter un champ, sans avoir de doublon à l'insertion. Pour assurer l'intégrité, tu rajouteras une clef unique, ou une clef primaire dessus.
    Pour l'année tu utiliseras un champ YEAR, ou DATE selon la bdd.

    Après tu construis ton identifiant dans le code php pour plus tard l'afficher.

    Dans ton programme pour identifier une commande ou un devis tu utiliseras le champ auto incrémenter unique, car justement c'est le champ qui est unique.

    c'est tout.

    L'autre solution c'est de faire une colonne avec une clef unique dessus, et lors de l'insertion il faut boucler dessus et à chaque itération, générer un nouvel identifiant, et ce jusqu'à ce que la requête soit accepté par la bdd.

    http://dev.mysql.com/doc/refman/5.0/...increment.html

    bye

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Par défaut
    Merci pour ton aide.
    Je vais essayer de faire la première solution.
    Par contre, comment je peux faire pour faire en sorte que le numéro soit sur 6 chiffres (000001, 000002, ...) ?

    En fait, dans ta solution tu ne stockes pas cette référence dans la table ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Par défaut
    C'est encore moi.

    J'ai une solution à proposer. Est-ce que vous pouvez me donner votre avis ?

    1 - requête "insert into ..." afin de remplir ma table devis
    2 - récupération de l'id de cette table avec mysql_insert_id()
    3 - $noannee = date('y')
    $formatid = strpad($id,6,STR_PAD_LEFT)
    $codedevis = "DEV".$noannee.$formatid
    4 - mise à jour de la table devis en complétant le code.

    Qu'en pensez-vous ?

  5. #5
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    Citation Envoyé par hartecel Voir le message
    Merci pour ton aide.
    Je vais essayer de faire la première solution.
    Par contre, comment je peux faire pour faire en sorte que le numéro soit sur 6 chiffres (000001, 000002, ...) ?

    En fait, dans ta solution tu ne stockes pas cette référence dans la table ?
    Normalement si tu configure ton champs avec le nombre de caractère voulu, cela doit pouvoir fonctionner directement, il doit t'afficher autant de zéro que tu veux

Discussions similaires

  1. Générer du code automatiquement
    Par Martin_77 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/10/2009, 14h58
  2. [vba-e] Suppression De Code Automatique
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 06/04/2007, 14h15
  3. completion du code automatique
    Par korben06 dans le forum Visual C++
    Réponses: 1
    Dernier message: 10/11/2006, 09h29
  4. Code Automatique des boutons et Normes
    Par Alpha31 dans le forum Access
    Réponses: 1
    Dernier message: 09/06/2006, 11h51
  5. Générer un identifiant relatif > l'entité faible en prati
    Par vmolines dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 19/08/2005, 15h59

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