Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer : 
Créer sa première base de données MySql 
Cette formation est une étape intermédiaire incontournable dans la poursuite de l'apprentissage des techniques de 
programmation Php , pour les 
applications serveur . Nous allons créer notre première 
base de données MySql . Nous proposons de débuter simplement par la création d'une 
table  destinée à recevoir les informations d'inscription d'un internaute.
Ce 
formulaire d'inscription  existe déjà, nous l'avions conçu lors d'une 
formation Javascript .
Il propose à l'internaute de s'inscrire en remplissant les informations demandées par les champs du 
formulaire . Le 
code Javascript  scrute les saisies pour vérifier leur présence et leur conformité. Les mails doivent être identiques. Il en va de même pour les mots de passe. La date doit être saisie au format date. Si une saisie est erronée, la bordure de son contrôle apparaît en rouge pour aiguiller l'internaute. Mais nous n'avions pas pu aller plus loin. A l'époque, nous n'avions pas encore abordé les technologies serveur.
Une fois les données considérées comme valides par le 
code Javascript , la suite du traitement doit être passée au 
code serveur Php . C'est à lui de se charger de l'inscription des informations validées en 
base de données . Et en ce sens, nous collons parfaitement à la philosophie 
Client-Serveur  en équilibrant au mieux les charges. Tout ce qui peut être réalisé par la machine de l'internaute l'est en effet dans cette application. C'est le 
code Javascript  qui effectue les contrôles de validité. Ainsi, nous ne sollicitons pas inutilement le serveur. Il a déjà fort à faire avec le trafic et les multi-requêtes.
Pour inscrire ces informations en 
base de données , encore faut-il qu'elle existe et qu'elle soit déclarée avec ses identifiants de connexion. Ces derniers sont très importants en termes de sécurité. Nous y reviendrons. Et cette 
base de données  doit proposer une table dédiée pour accueillir précisément les 
informations d'inscription .
Les sources que nous proposons de récupérer seront simplement utilisées à titre de guide. En effet, l'objectif de cette formation est de bâtir une première 
base de données . Cette base doit offrir une table en corrélation avec les informations saisies dans le 
formulaire . Le 
code Php  interviendra quant à lui à partir de la prochaine formation. Il s'agira de réaliser ces insertions.
Créer une table de base de données MySql 
Bien que l'ergonomie proposée par 
MySql  soit différente, nous allons répliquer les techniques que nous avions apprises pour monter des 
bases de données  avec 
Access . La philosophie des 
bases de données  est identique d'un utilitaire à un autre. Il s'agit de créer les 
champs de table  nécessaires et de les typer au plus juste pour économiser les ressources. Une erreur de typage sur un champ, multipliée par des milliers de connexions simultanées, peut vite engorger les ressources du serveur.
A la racine du dossier de décompression, cliquer droit sur le fichier index.php , 
Dans le menu contextuel, choisir de l'ouvrir avec un éditeur tel que le Notepad++, 
Comme vous le constatez, dans le 
code Javascript , nous avions pris soin d'ajouter l'
attribut maxlength  dans les balises de chaque 
contrôle Html  du 
formulaire . Nous limitons ainsi la taille des saisies. Nous pourrons exploiter ces valeurs seuilles pour dimensionner nos champs de table.
Même si dans ce premier volet nous nous concentrerons sur la 
base de données  et non sur la conception du 
code Php , nous pouvons constater la présence des appels en entête et en pied de code. Ils sont réalisés par la 
fonction Php include .
<?phpinclude('commun/entete.php'); include('commun/pied.php');  
Ils pointent respectivement sur les fichiers 
entete.php  et 
pied.php . Eux-mêmes appellent dans la construction les fichiers externes 
ouvrir.php  et 
fermer.php . Comme leurs noms l'indiquent, le premier permet d'établir la connexion à la base pour permettre les accès. Le second ferme cette connexion. Comme nous l'avions appris en 
VBA Access  notamment, toute connexion ouverte doit être fermée.
Pour créer une 
base de données , sa table et ses champs, le serveur virtuel de base de données doit être démarré.
Ouvrir EasyPhp , 
Sur son interface, cliquer sur le bouton Start  pour le http Server , 
De même, cliquer sur le bouton Start  pour le DataBase Server , 
De fait, 
MySql  devient disponible.
Cliquer sur son bouton Open  en fin de ligne, 
Dès lors, nous accédons à l'interface d'administration des bases de données, 
PhpMyAdmin . Le volet de gauche propose la liste des bases de données recensées. Il est vierge pour l'instant. Nous devons créer la toute première.
Dans ce volet de gauche justement, cliquer sur le lien Nouvelle base de données , 
La nommer : bd_gestion  par exemple, 
Puis choisir le système d'encodage utf8_general_ci  avec la liste interclassement , 
Il s'agit d'un interclassement général comme son nom l'indique. Il fonctionne de façon simple et rapide. Il simplifiera de même la gestion des caractères latins et des différences de casses.
Cliquer sur le bouton Créer , 
La 
base de données  existe désormais. Elle apparaît dans le volet de gauche. Mais elle est encore vide à ce stade. Nous devons créer sa première table, celle permettant d'accueillir les informations des nouveaux inscrits, issus du 
formulaire Web  que nous avons présenté.
Si le lien de la base de données est toujours actif dans le volet de gauche, l'interface de création de table est justement proposée au centre de l'écran. Pour 
créer une nouvelle table , il faut certes la nommer mais aussi connaître le nombre de champs nécessaires. Nous devons accueillir l'information sur la civilité, le nom, le prénom, la date de naissance, le mail et le mot de passe. Nous avons a priori besoin de 6 champs. Mais une 
table  doit toujours proposer une 
clé primaire comme nous l'avions appris avec Access . Une 
clé primaire  permet d'identifier explicitement chaque enregistrement en lui attribuant un 
identifiant unique . Les homonymes existent en effet. Nous pourrions utiliser l'adresse mail pour la clé primaire. Mais un mail n'a pas une durée de vie illimitée contrairement à un numéro de sécurité sociale par exemple. Donc, nous avons besoin d'un septième champ. Et nous demanderons à 
MySql  de le gérer par 
auto-incrémentatation . Souvenez-vous, dans les 
bases Access , nous typions le champ en 
numeroAuto .
Nommer la table : inscr  par exemple pour l'abréviation d'inscrits, 
Définir 7 colonnes, soit 7 champs  en langage de base de données, 
Enfin, cliquer sur le bouton Exécuter , 
Nous basculons ainsi directement sur l'interface de création des champs. Pour des raisons de clarté et pour des méthodes professionnelles, il est judicieux de préfixer chacun d'entre eux du nom de la table. Ainsi lorsque nous exécuterons des 
requêtes SQL multi tables  par le 
code PHP , aucune ambiguïté ne sera soufferte, quant aux champs de destination ainsi désignés.
Il est toujours opportun de débuter par la création du champ de la 
clé primaire .
Dans la première zone Nom, saisir inscr_num , 
Conserver le type  sur Int  sans préciser l'information Taille/Valeurs, 
Régler les attributs sur Unsigned , 
Dans la colonne Index, choisir Primary , 
Valider la boîte de dialogue qui se déclenche en cliquant sur Exécuter , 
Il s'agit du 
champ de la clé primaire . Il doit être 
auto-incrémenté  donc 
numérique , d'où le 
type Int . Nous n'avons pas limité sa taille. Si le site a des vocations internationales, nous ne devons pas restreindre ses capacités à accueillir de nouveaux inscrits. Lorsque la taille n'est pas définie, c'est un entier codé sur 11 bits qui est créé. L'
attribut Unsigned  permet de spécifier qu'il n'y aura pas de valeur négative. Ainsi, nous augmentons le plafond autorisé pour les numéros positifs incrémentés. Enfin, la 
propriété Index  est calée sur 
Primary  pour définir ce champ en 
clé primaire , donc comme unique.
Sur la deuxième ligne, dans la zone Nom, saisir inscr_civilite , 
Dans la colonne Type, choisir Varchar , 
Dans la zone Taille/Valeurs, limiter sa capacité à 8  caractères, 
Dans la liste Interclassement, choisir utf8_general_ci , comme pour la base de données, 
Un 
champ de type Varchar  permet d'accueillir des chaînes de caractères de longueurs variables. Justement, nous limitons cette taille en cohérence avec la liste déroulante de la civilité sur le 
formulaire Web . Le texte le plus long est Monsieur. Il est composé de 8 lettres. Pour les champs suivants, nous limiterons cette taille en cohérence avec l'
attribut maxlength  de chaque contrôle respectif.
Créer les autres champs avec les propriétés respectives suivantes : inscr_nom  , Varchar taille 50, utf8_general_ci,inscr_prenom , Varchar taille 50, utf8_general_ci,inscr_date , Varchar taille 10, utf8_general_ci,inscr_mail , Varchar taille 150, utf8_general_ci,inscr_mp , Varchar taille 10, utf8_general_ci.Tout en bas de l'interface, définir l'interclassement de la table sur utf8_general_ci , 
Puis, choisir le moteur de stockage MyIsam , 
Ce moteur de stockage est le plus performant pour l'exécution de requêtes de types Select et Insert, celles que nous allons justement exploiter à grande échelle.
Enfin, cliquer sur le bouton Enregistrer , 
La structure de la table apparaît aussitôt, prête à être implémentée. Vous remarquez le symbole de la 
clé primaire  en regard du premier champ. Il confirme qu'il s'agit bien d'une colonne d'informations uniques.
Vous l'avez remarqué, les possibilités offertes sont nombreuses pour typer les champs. Ici l'objectif était la prise de contact par la création d'une table simple dans une petite 
base de données . Il s'agira ensuite de l'enrichir par le code. Nous avons intentionnellement typé la date comme un texte et non comme une date. 
Php  est capable de recueillir cette chaîne et de l'interpréter en tant que date. Dans les prochaines formations, nous découvrirons les types de données qu'il est possible d'exploiter.
Le champ de la clé primaire a bien été défini. Mais à ce stade, il ne s'incrémente pas tout seul. Nous allons donc modifier cette propriété qui permettra de ne pas devoir le faire par le 
code PHP .
Dans la structure de la table, cocher la case du champ inscr_num , 
Puis, cliquer sur le lien Modifier  situé en dessous de la table, 
Cocher la case de la colonne A.I , 
Puis, cliquer sur le bouton Enregistrer , 
A.I. signifie auto-incrémenté. D'ailleurs, vous notez désormais l'apparition de la mention 
Auto_Increment  dans la colonne Extra pour le champ inscr_num de la clé primaire.
Nous proposons de tester cette table par l'ajout manuel d'un enregistrement complet.
Cliquer sur l'onglet Insérer  en haut de l'interface de PhpMyAdmin, 
Dans la colonne Valeur  pour le champ inscr_civilite , taper Monsieur , 
Dans le champ inscr_nom , taper Doeuf , 
Dans le champ inscr_prenom , taper John , 
Dans le champ inscr_date , taper 18/06/1982 , 
Dans le champ inscr_mail , taper john.doeuf@outlook.com , 
Dans le champ inscr_mp , taper jd213Hn , Enfin, cliquer sur le bouton Exécuter , 
Une interface de confirmation apparaît. Elle indique que la nouvelle ligne a bien été insérée. Elle affiche la 
requête SQL  qui a été exécutée. C'est cette syntaxe que nous devrons reproduire en Php, afin d'insérer les informations de l'internaute saisies dans le formulaire, dans la 
table inscr  de la base de données.
Privilèges et droits administrateurs 
Nous n'avons pas terminé. Nous devons définir les 
droits administrateurs  pour sécuriser l'accès. Les informations de bases de données sont confidentielles et précieuses. Elles doivent être protégées, surtout lorsqu'il s'agit de données clients.
Dans le volet de gauche, cliquer sur la table inscr  de la base de données bd_gestion, 
Nous affichons ainsi les enregistrements de la table. Nous y découvrons celui que nous avons ajouté manuellement. Constatez que le 
champ inscr_num  s'est rempli lui-même. Nous ne l'avons en effet pas renseigné.
Dans le volet de gauche, cliquer maintenant sur le lien bd_gestion  de la base de données, 
Puis, en haut de l'interface de PhpMyAdmin, cliquer sur l'onglet Privilèges , 
La base de données doit toujours être sélectionnée avant de définir les informations du compte qui pourra y accéder.
Cliquer alors sur le lien Ajouter un compte d'utilisateur , 
L'interface 
Ajouter un compte d'utilisateur  apparaît.
Dans la zone Nom d'utilisateur , saisir le texte moimeme  par exemple, 
Dans la zone nom d'hôte , saisir l'adresse virtuelle locale définie par EasyPhp : 127.0.0.1 , 
Dans la zone Mot de passe , taper : mm127eM  par exemple (dernier m en majuscule), 
Dans la zone Saisir à nouveau , retaper le mot de passe : mm127eM , 
La sécurité du mot de passe est considérée comme faible. Il faudrait l'allonger, ajouter des caractères spéciaux et mélanger les majuscules et minuscules. Mais il s'agit ici de tests locaux. Donc nous poursuivons.
Plus bas dans l'interface, cocher la case Tout cocher  pour les privilèges globaux , 
Ainsi, notre code Php, connecté avec ces identifiants pourra intervenir à tous niveaux sur la base, structure et données.
Enfin, tout en bas de l'interface, cliquer sur le bouton Exécuter , 
Le compte est désormais créé. Nous devrons exploiter ces informations pour accéder à la base de données par le code serveur Php. Ces informations de compte devront être mise à jour au moment de l'achat d'un hébergement. Elles vous seront communiquées automatiquement par l'hébergeur. La base de données devra être importée sur le serveur. Nous aborderons ce sujet en temps voulu.
Cliquer de nouveau sur la base de données bd_gestion  dans le volet de gauche, 
Puis, cliquer sur l'onglet Privilèges  en haut de l'interface de PhpMyAdmin, 
La 
base de données  existe. Elle propose une table capable d'accueillir les informations des nouveaux inscrits. Certes à ce stade, le mot de passe n'est pas encodé, pas encore, chaque chose en son temps. Les 
privilèges  sont établis. Dans la prochaine formation, nous devrons les définir par le code pour établir la 
connexion à la base de données  afin d'y inscrire, par 
requête SQL , les données de l'internaute saisies dans le 
formulaire d'inscription .