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

Voir aussi  Top 10 langages de programmations populaires en 2018

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.

Voir aussi  Connecter les utilisateurs de vos applications web et mobile sans mot de passe

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.

Voir aussi  Comment créer une barre de recherche pour son site avec PHP & MySQL

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.

9 comments

  • Ana
    Ana

    Svp Où se trouve la fonction markincludes/functions.php

  • jesse
    jesse

    Merci goms. Mais depuis que j’attendais ta réponse

    • Goms
      Goms

      Quelle réponse ? à quelle question ?

  • Ana
    Ana

    Cool Magnifique. Svp comment faire afficher Le sommaire de mon article comme vous l’avez fait pour cet article

    • Goms
      Goms

      Il y a une fonction markincludes/functions.php qui fait ce job

Répondre

Votre email ne sera pas publié Required fields are marked *
Vous pouvez utiliser les balises HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.