Créer et utiliser une base de données MySQL


MySQL est un serveur de bases de données relationnelle, libre et open source, distribué sous licence GNU (GPL). Une base de données relationnelle est une base de données dans laquelle les informations sont placées dans des tableaux à deux dimensions appelés tables.
MySQL et PHP sont souvent utilisés ensemble et font partie des offres d'hébergement proposées par les hébergeurs de sites Web.
MySQL permet, au sein d'une même base, d'utiliser des moteurs différents pour différentes tables. Parmi les nombreux moteurs existants, on rencontre notamment les moteurs MyISAM, InnoDB, CSV...

• MyISAM est un moteur performant et simple à mettre en œuvre et à utiliser mais qui ne supporte pas les clés étrangères (clés permettant de gérer des relations entre plusieurs tables afin de garantir la cohérence des données) ni les transactions (une transaction est un ensemble de requêtes qui doivent être exécutées comme un tout cohérent). Le moteur MyISAM est donc bien adapté au cas d'une application utilisant une base de données simple et dont la cohérence des données n'est pas critique.

• InnoDB permet de gérer les transactions et les clefs étrangères mais conduit à une occupation disque plus importante pour les bases de données qui l'utilisent.

• CSV est un moteur qui utilise des fichiers textes au format CSV pour stocker les données ;

phpMyAdmin est un outil proposé par les hébergeurs (dans leurs offres d'hergement de sites web) qui permet de gérer facilement depuis le navigateur de l'internaute, à l'aide d'une interface graphique, les bases MySQL qui font partie de l'offre d'hébergement.

Lorsque l'internaute envoie une requète HTTP à internet (quand il appelle une page web depuis son navigateur), internet transmet cette requète au serveur PHP de l'hébergeur qui héberge cette page. Le serveur PHP de l'hébergeur récupère alors la page correspondante. Si celle ci est écrite en langage PHP, il la transforme en langage HTML avant de la renvoyer sinon il la renvoit telle quelle. Si le code PHP de la page contient des requètes MySQL, le serveur PHP adresse ces requètes au serveur MySQl concerné qui (selon la requète) écrit ou lit dans la base de données et renvoit au serveur PHP les données demandées. Le serveur PHP met alors la réponse sous forme HTML et l'envoie à l'internaute. Le schéma suivant illustre ce fonctionnement d'ensemble.

navigateur-internet-hebergeur-php-mysql

1) Créer une base de donnée avec phpMyAdmin

1.1) Hébergeurs et offres d'hébergement

Dans leurs offres d'hébergement, les hébergeurs incluent la possibilité pour le client d'utiliser une (ou plusieurs) base(s) de données MySQL dont la capacité en volume dépend de l'offre d'hébergement.

Par exemple, à la date du 15 janvier 2019, dans ses offres d'hébergement mutualisé, l'hébergeur Phpnet inclue :
• 1 base de donnée MySQl de 25Mo dans sa formule Eco
• 3 bases de donnée MySQl de 50Mo chacune dans sa formule Mutu Start
• 5 bases de donnée MySQl de 400Mo chacune dans sa formule Mutu Boost
• 6 bases de donnée MySQl de 800Mo chacune dans sa formule Mutu Max

Offres hébergement mutualisé Phpnet au 15/01/2019

1.2) Création d'une base de données

Après paiement de l'offre d'hébergement par le client, l'hébergeur active l'espace PHP-MySQL correspondant. Pour créer une base de donnée MySQL, à l'aide de l'outil phpMyAdmin, on peut alors procéder de la façon suivante qui est utilisée ici avec l'hébergeur Phpnet mais qui est comparable quel que soit l'hébergeur.

1) On se connecte au panel client de l'hébergeur
2) Une fois dans le Panel client, on clique sur l'onglet "Hébergement mutualisé" puis sur le lien correspondant au nom de l'hébergement.
02

Dans la page de synthèse de l'hébergement, on se place alors dans la rubrique correspondant à la base de données. Par exemple, avec l'offre Mutu Start de Phpnet, cette rubrique apparaît avec le titre "VOS BASES DE DONNEES MYSQL - 1 BASE SUR 3". On clique alors le bouton "Créer une base de données"
03

Un boîte de dialogue s'ouvre alors automatiquement, demandant si l'on souhaite créer une base de données avec les réglages par défaut ou en fixant soi même les réglages en mode expert. Pour cette première création, dans un souci de simplicité, on choisit le mode par défaut.
04

Un message apparaît alors, indiquant que que la base MySQL a bien été créée et affichant les informations suivantes données automatiquement par Phpnet :
• le nom du serveur (hote de connexion ou host) sur lequel se trouve cette base
• le nom de cette base de donnée sur le serveur. Le nom de la base qui dépend de l'hébergement et du nom de domaine du site (on l'appelera ici nom_de_la_base)
• le nom d'utilisateur (login) et le mot de passe (password) à utiliser pour se connecter à cette base de donnée
05

Pour accéder à la base de donnée, on se place dans la rubrique correspondant à la base de données et on clique le bouton en forme de disque
06

Dans l'écran qui s'ouvre, on clique alors le nom de la base, présenté sous forme de lien situé à gauche juste sous le texte "information_schema"
07

Dans l'écran qui s'ouvre, un message indique qu'aucune table n'a été trouvée dans cette base de données. Cela est normal puisque pour le moment on a créé aucune table.
08

1.3) Création d'une table dans la base de données

Pour créer une table, on commence par indiquer le nom de cette table et le nombre de colonnes dans les champs correspondants.
Si on veut créer une table des membres d'un club par exemple, dans le cadre d'un projet de création d'un espace membre, et si l'on souhaite prendre en compte le nom, le prénom et l'année de naissance de chaque membre (soit 3 informations), on écrira membres dans le champs nom de la table et 3 dans le champs nombre de colonnes de cette table. Puis on clique le bouton Exécuter.
09

phpMyAdmin présente alors un écran demandant de décrire la nature des trois champs (colonnes) qui constituent la table. phpMyAdmin propose par défaut d'utiliser le moteur InnoDB, ce que l'on peut modifier, si on le souhaite, en MyIsam par exemple.
10

On remplit ces champs puis on clique Enregistrer
11

Un écran s'affiche alors automatiquement, affichant la structure de la table.
12

1.4) Modification du mot de passe d'accès à la base

Une fois la base de données nom_de_la_base et la table membres créées depuis le panel client, on va modifier le mot de passe donné par Phpnet et le remplacer par un mot de passe adapté à notre besoin.
Pour cela, dans la rubrique du Panel client correspondant à la base de données, on clique le bouton Plus puis l'option Modifier le mot de passe
13

Dans la boîte de message qui s'ouvre, on saisit et on confirme le nouveau mot de passe puis on clique le bouton Modifier le mot de passe.
Un message s'affiche alors automatiquement indiquant que le nouveau mot de passe va être opérant sous 5 minutes.
14

1.5) Insertion de données dans la base de données

On va maintenant faire la suite des opérations non plus depuis le Panel Client Phpnet mais depuis l'interface phpMyAdmin proposée par Phpnet. Pour cela on se connecte à l'aide du navigateur à l'adresse suivante : https://sql.phpnet.org/

dans la boîte de dialogue qui s'ouvre, on saisit les informations qui ont été données précédemment par Phpnet :
• nom d'utilisateur de la base(login) et le mot de passe (password) à utiliser pour se connecter à cette base de donnée
• mot de passe (password)
• nom du service associé à l'hébergement chez Phpnet (mutualisé ou SQL Gold)
• nom du serveur (hote de connexion ou host) sur lequel se trouve la base de données
Une fois ces informations renseignées, on clique le bouton Se connecter 15

On se retrouve alors dans phpMyAdmin et, comme précédemment, il suffit de cliquer le nom de la base de données pour pouvoir travailler avec elle.
Dans la ligne correspondant à la table membres, on clique le bouton Parcourir
16

phpMyAdmin indique que MySQl a retourné un résultat vide. Cela est normal puisque pour le moment aucun information n'a été insérée dans la table .
Pour insérer des informations dans la table, on clique le bouton Insérer. 17

Dans l'écran qui s'ouvre on saisit un premier enregistrement dans la table membres. On saisit par exemple nom: dupont, prenom: jacques et annee : 1951 puis on clique Exécuter
18

phpMyAdmin indique que la ligne a bien été insérée dans la table et affiche la syntaxe de cette requète. L'indication de cette syntaxe est intéressante car on peut ainsi ultérieurement l'utiliser facilement et sans risque d'erreur, en tant que de besoin, dans du code PHP
19

En cliquant le bouton Parcourir, on affiche le contenu de la table membres qui contient désormais une ligne
20

En utilisant les boutons Insérer et Parcourir, on peut ainsi insérer autant de lignes que l'on veut dans la table et vérifier leur bonne prise en compte
21

2) Lire le contenu de la base de donnée avec PHP

2.1) Lecture directe

On commence par écrire le fichier suivant qu'on appelera connect.php par exemple et qui permettra de se connecter à la base de donnée.

22

On écrit ensuire le fichier lire.php suivant qui permet de lire et afficher directement le contenu de la base de données.

23

Quand on appelle la page lire.php depuis un navigateur, le résultat obtenu est le suivant

24

Code source
connect.txt lire.txt

2.2) Lecture par l'intermédiaire d'un formulaire

Pour afficher de façon interactive des enregistrements souhaités dans une base de donnée, une solution simple consiste à saisir dans un formulaire la valeur d'un champ pour lequel on souhaite voir afficher ces enregistrements. Par exemple on peut souhaiter voir afficher tous les enregistrements de la base de données pour lesquels le champs nom possède la valeur "durant"

Dans l'exemple suivant, le fichier formulaire2.php contient un zone de saisie d'une valeur de recherche pour le champs nom de la table membres de la base de données.

25

Une fois la valeur du nom saisie par l'utilisateur, le fichier formulaire2.php appelle le fichier lire2.php qui recherche puis affiche les enregistrements concernés. On peut remarquer que lorsqu'on envoie un formulaire en utilisant la méthode de transmission get, les données transmises ("durant" dans notre exemple) au fichier destinataire (lire2.php dans notre exemple ) sont transmises en étant placées à la suite du nom de l'url appelée. Dans notre exemple, l'information saisie ("nom=durant") est placée à la suite de l'url "http://mon-nom-de-domaine/mon-repertoire/lire2.php" avec la syntaxe "?nom=durant".

26

Il est également possible de renvoyer les données d'un formulaire en utilisant la méthode post à la place de la méthode get. Le principe est le même mais avec la méthode post, les données retournées n'apparaissent pas dans la barre d'adresse car elles sont envoyées séparemment. Cette méthode permet également d'envoyer davantage de données, en terme de taille limite autorisée par la configuration php par défaut du serveur. C'est pourquoi on utilise souvent la méthode get lorsque les données envoyées ne sont pas trop nombreuses ni sensibles (pas de présence d'un mot de passe par exemple) et on utilise la méthode post dans le cas contraire. Le schéma suivant illustre le fonctionnement d'ensemble (fonctionnement identique avec la méthode get mais où ici la donnée "dupont" est envoyée séparemment et non plus dans la barre d'adresse du navigateur).

27

Code source :
formulaire2.txt lire2.txt

3) Modifier le contenu de la base de donnée avec PHP

Pour ajouter un enregistrement à la table membres, par l'intermédiaire d'un fichier ajouter.php, on récupère les données du formulaire formulaire.php qui a appelé le fichier ajouter.php puis on se connecte à la base de données. On effectue alors une requête php avec la syntaxe suivante:
$requete = "INSERT INTO membres (nom, prenom, annee) VALUES ('$nom','$prenom','$annee')";

28

Pour supprimer un enregistrement de la table membres, par l'intermédiaire d'un fichier gestion.php, on récupère les données du formulaire formulaire.php qui a appelé le fichier gestion.php puis on se connecte à la base de données. On effectue alors une requête php avec la syntaxe suivante:
$requete = "DELETE FROM membres WHERE nom='$nom'";

29

4) Programme de gestion complet

On regroupe l'ensemble des fonctionnalités évoquées précédemment, dans les deux fichiers formulaire.php et gestion.php suivants qui permettent de :
• Afficher le contenu de la table membres
• Ajouter un enregistrement dans cette table
• Supprimer un enregistrement dans cette table

30
31

le fichier gestion.php utilise le fichier connect.php qui contient les droits d'accès à la base de données.

31b

Le fichier formulaire.php affiche l'écran suivant.

32

Le bouton Afficher conduit à l'affichage du contenu de la table membres.

33

Le bouton Ajouter conduit à l'ajout d'un enregistrement dans table membres.

34

Le bouton Supprimer conduit à la suppression d'un enregistrement dans table membres.

35

Le lien Retour au formulaire permet de revenir au formulaire pour effectuer l'opération suivante.

Le code source des trois fichiers connect.php, formulaire.php et gestion.php est contenu dans l'archive suivante créée avec Xarchiver
gestion.tar.bz2