Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Les variables sont des données éphémères ; les variables simples durent le temps d'affichage du document PHP.
les variables de session durent le temps d'une visite d'un site ; les cookies peuvent durer plus longtemps sauf si l'internaute
les supprime.
On peut bien sûr stocker de façon permanente dans un fichier texte mais ces données sont en vrac, sans aucune structure ; pour en savoir davantage sur la manipulation des fichiers en PHP
Une base de données relationnelle est un ensembles structuré de données permanentes : plusieurs tables et pour chaque table plusieurs
enregistrements. Tous les enregistrements d'une même table ont la même structure.
La base de données est dite relationnelle car deux tables peuvent être reliées entre elles via un champ commun : champ de jointure.
Un site adossé à une base de données devient dynamique. En effet l'apparence des pages évolue en fonction des insertions, suppressions et modifications dans la base de données ; mises à jour effectuées par l'administrateur et les utilisateurs autorisés.
MySQL est un SGBDR fort utilisé ; il est libre et gratuit et surtout il est inclus dans le pack WAMP !
Par ailleurs il est contient un outil d'administration très pratique : PHPMyAdmin.
Grâce à cet outil il n'est pas nécessaire d'être un as de SQL pour administrer une base de données ;
il suffit d'utiliser les menus de cette interface (menus qui génèrent des requêtes SQL).
SQL (Structured Query Language) est le langage de manipulation des bases de données relationnelles.
Une base de données a un nom et comprend une ou plusieurs tables.
Un table c'est comme un tableau à double entrées : des lignes et des colonnes.
Imaginons que vous êtes chargé de créer le site pour une association.
On vous demande que ce site doit contenir une page "infos".
On vous précise qu'il peut y avoir plusieurs "news" chaque semaine !
Si vous ne voulez pas recourir à une base de données adossée au site, vous devrez modifier plusieurs fois par semaine
le code HTML de la page "infos". Ce sera très très fastidieux et de plus la maintenance devra être faite par une personne
compétente en HTML & CSS.
Par contre si vous créez un site avec base de données et en particulier une table "infos" il suffira d'ajouter une ligne dans
cette table et forcément la page "infos" ayant pour source la table "news" tiendra compte de cet ajout.
Cet ajout à la table "news" pourra être effectué par un administrateur de site même ignorant des
standards du web (HTML & CSS); il lui suffira de remplir un formulaire auquel il a accès.
Grâce à une base de données votre site est devenu dynamique !.
Cette table sera un tableau avec 4 colonnes et autant de lignes (ou enregistrements) que d'infos.
| ID | date_new | titre | message |
|---|---|---|---|
| 1 | 2035-01-20 | convocation AG | Blabla .... |
| 2 | 2025-02-10 | convocation bureau | Blabla .... |
| 3 | 2025-03-20 | compte rendu AG | Blabla .... |
| 4 | 2025-03-30 | compte rendu réunion bureau | Blabla .... |
Ci-dessus la table ne comprend que trois lignes (ou 3 enregistrements) car il n'y a pour l'instant que trois "infos".
Nous allons utiliser PHPMyAdmin pour créer en local (sur notre ordinateur) une base de données avec la table "news".
PHPMyAdmin est une application écrite en PHP qui permet de gérer une base de données.
Ce programme fait partie du pack Wamp et est aussi proposé par les hébergeurs.
PHPMyAdmin est une interface permettant de générer des requêtes SQL ; il évite donc d'utiliser la console SQL.
Démarrez Wamp puis sélectionnez "PHPMyAdmin"
C'est la page d'accueil de l'application PHPMyAdmin
Pour le champ "utilisateur" il faut saisir "root" et par défaut il n'y a pas de mot de passe.
Dans ce deuxième écran vous pouvez attribuer un mot de passe pour se connecter à PHPMyAdmin.
Dans cet écran vous pouvez créer une nouvelle base de données. il suffit de cliquer sur le lien "Nouvelle base de donnée".
Des bases existent déjà dont "MySQL" et "Information_schema". N'y touchez surtout pas car ces bases sont indispensables au bon fonctionnement de l'application PHPMyAdmin.
Créez une nouvelle base et nommez cette dernière test.
Vous voyez que l'on est dans la nouvelle base (test) et cet écran indique que pour le moment cette base est vide de toute table.
L'interface vous propose de créer une table ; Nommez cette table "news" et précisez qu'elle aura 4 colonnes.
La première colonne se nomme ID (comme identifiant). La colonne est de type INT (integer) et j'ai coché A-I (Auto-Increment).
Ce qui veut dire qu'à chaque fois qu'un enregistrement sera ajoutée dans la table son champ ID sera rempli automatiquement.
La colonne ID est aussi clé primaire.
Il n'est pas obligatoire de définir une clé primaire dans une table mais c'est fortement conseillé.
Comme le champ ID est clé primaire il ne peut y avoir de doublons sur cette colonne ;
La deuxième colonne se nomme "date_new" et est de type date. Elle permet de stocker une date sous la forme AAA-MM-JJ.
Le troisième champ se nomme "titre" et de type varchar. Pour un champ de type varchar il faut préciser la taille. Ici c'est 30. Donc on peut stocker un chaîne ayant 30 caractères maximum. Attention la taille d'un champ de type varchar ne peut dépasser 255.
Donc pour pouvoir stocker un texte long pouvant dépasser 255 caractères il faut il utiliser le type text ; c'est ce que je fais pour le quatrième champ de la table qui se nomme message. C'est bien ce qu'on demande à un identifiant ; qu'il soit unique !
Nous avons vu les types INT(pour stocker un entier), DATE, VARCHAR et TEXT.
On peut ajouter des lignes (enregistrements) à une table via PHPMyAdmin mais ce n'est pas à la porté de l'internaute lambda et de plus ce serait extrèment dangereux en matière de sécurité des données.
PHPMyAdmin ne doit être utilisé que par l'administrateur du site et pour des tâches exceptionnelles.
Pour les tâches courantes il faut prévoir des interfaces entre l'internaute et la base de données ;
concrètment des pages PHP.
L'interface comprendra entre autres une page pour saisir de nouvelles 'news' avec un formulaire de soumission et un script PHP. Le formulaire de soumission, vous connaissez maintenant.
L'ajout de nouvelles données dans une base pose des problèmes de sécurité aigus. Mais je n'en dis pas plus pour l'instant car c'est prématuré.
La page destinée à saisir les 'news', comme toutes les pages d'administration, doit comprendre une instruction de connexion à la base.
Nous allons utiliser l'extension PDO !
Pour se connecter à la base de données MYSQL test en local, l'instruction est alors :
$base = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
Cette instruction peut vous paraître étrange si vous n'ètes pas habitué à la POO (Programmation Orientée Objet).
Sachez simplement que PHP est un langage qui autorise la programmation procédurale mais aussi depuis la version 5,
la programmation orienté objet.
$base est un objet qui référence la base. On pourra ensuite appliquer à cet objet des méthodes et propriétés.
Attention en PHP la syntaxe est objet->méthode() (alors qu'en JS on utilise la notation pointée).
Attention, la table "infos" a été renommée "news".
Oui, vous verrez plus tard que la structure d'une base n'est pas "gravée dans le marbre".
On peut renommer une table, ajouter/supprimer une table, rajouter / supprimer des colonnes d'une table, etc.