formateur informatique

Créer sa première base de données MySql

Accueil  >  Technique  >  Php  >  Php Débutant  >  Créer sa première base de données MySql
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux, voici son url absolue :

Pour l'intégrer sur votre site internet ou blog, vous pouvez l'embarquer :

Sujets et formations similaires :


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.

Formulaire Html Php Javascript pour inscription en base de données MySql



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++,
Propriété maxlength de contrôles Html de formulaire pour limiter longueur de saisie avant insertion en base de données MySql

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.

<?php
include('commun/entete.php');
?>
<script language='javascript' type='text/javascript'>
...

...
<div class='div_saut_ligne' style='height:150px;'>
</div>
<?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,
Démarrer serveurs EasyPHP pour accéder administration PhpMyAdmin

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,
Créer nouvelle base de données MySql avec interface administration PhpMyAdmin

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,
Créer une nouvelle table de base de données MySql avec PhpMyAdmin



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.


Créer et typer les champs de table de base de données MySql
  • Tout en bas de l'interface, définir l'interclassement de la table sur utf8_general_ci,
  • Puis, choisir le moteur de stockage MyIsam,
Finaliser création de table de base de données MySql en définissant interclassement et 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,
Régler le champ de la clé primaire sur auto-incrémenté pour produire automatiquement des valeurs uniques

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,
Insérer de nouvelles valeurs dans les champs de la table de la base de données MySql
  • 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,
Afficher enregistrements de table MySql dans interface administration PhpMyAdmin

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,
Créer compte utilisateur pour définir privilèges et droits accès à la base de données MySql

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,
Définir nom utilisateur et mot de passe pour droits accès à base de données MySql

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,
Définir les privilèges utilisateur pour accéder à la base de données MySql

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,
Administration PhpMyAdmin des comptes utilisateurs autorisés à accéder aux bases de données MySql

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.

 
Sur Facebook
Sur G+
Sur Youtube
Les livres
Contact
Mentions légales



Partager la formation
Partager sur Facebook
Partager sur Google+
Partager sur Twitter
Partager sur LinkedIn