Créer un custom auto incrément avec PHP

Une clé primaire, dans la notion de base de données est systématiquement une colonne qui contient pour chaque enregistrement une valeur non redondante que doit avoir une table. Cela doit identifier chaque enregistrement de manière unique.

phpmyadmin

Vous avez peut-être marre d’utiliser l’auto_increment de MySQL ou tout autre alternative pour d’autres SGBD qui a une forme un peu restreinte et pas sémantique, nous allons écrire notre script en PHP pour customiser cette colonne qui généralement est nommée « id » mais libre de le nommer comme on le veut.

Admettons que vous informatisez une école, un identifiant d’un élève « ELE01 » ou d’un enseignant « ENS01 » serait mieux que d’être simplement « 1 »

On va faire une chose assez simple, nous allons avoir une logique ETUDIANT_ID où

  • ID : est le numéro unique de l’étudiant

Donc, on aura une suite comme ETUDIANT_1, ETUDIANT_2…. ETUDIANT_n…

Concept

Coté logique de notre code aussi on ferra très simple :

Lors de l’enregistrement dans la table, on vérifie d’abord s’il y a une donnée dans la table. Si non, on enregistrement sans problème la donnée avec le numéro unique qu’on aura par default, soit ETUDIANT_1. S’il y a un ou plusieurs enregistrements, on récupère l’id du dernier enregistrement et on l’incrémente.

ETUDIANT_1 n’est pas de type numérique mais bel et bien alphanumérique. Pensez bien à mettre le type de l’id en VARCHAR sinon ça ne va pas bien fonctionner

Schématiquement, cela peut se résumer en ceci :

ordinogramme

Code

Je pense que je n’ai pas à expliquer car le code est commenté et au final, on voit bien que notre système fonctionne très bien et aussi que la requête sql est évidente.

Après vous n’avez qu’à utiliser la variable $increment lors de l’enregistrement comme ceci :

customAI

Cette implémentation n’est pas si mal mais si vous voulez changer la structure de votre clé primaire (par exemple ELEVE01), vous devriez écrire à chaque fois le code correspondant. pas très idéal.

Librairie CustomAI

Raison pour laquelle j’ai développé la librairie CustomAI qui va vous permettre de gagner en rapidité. La librairie n’a fait qu’implémenter la logique qu’on a vue ci-haut.

Exemple d’implémentation de la même chose qu’on a fait mais avec la librairie

Explications :

  1. Dans la ligne 1, rien de compliqué qu’en requirent le fichier de la librairie
  2. J’ai customisé mon masque pour qu’elle prenne une forme à souhait. (plus d’infos)
  3. J’ai instancié la librairie CustomAI avec le premier paramètre, la connexion PDO de la base de données et le second paramètre c’est le nom de ma table, le troisième paramètre qui est la colonne clé primaire de ma table et le 5ème argument, j’ai customisé mon masque pour qu’elle prenne une forme à souhait. (Plus d’infos)

 

L’avantage c’est qu’on a un code réutilisable. Et si on veut pour les élèves, on a simplement qu’à modifier le 4ème paramètre avec « ELEVE(0) ». Pour plus d’informations.

Ajouter un commentaire

6 Commentaires

  1. Ana 13 juin 2017
  2. jesse 6 juin 2017
    • Goms 8 juin 2017
  3. Ana 5 juin 2017
    • Goms 8 juin 2017
Lire les articles précédents :
difference developpeur et programmeur
Différence entre programmeur et développeur

Je suis programmeur, je suis aussi développeur. Comment est-ce possible ? Bah parce qu’il y a aucune différence entre un programmeur...

Fermer