
- 1: Avant de commencer
- 2: Présentation
- 3: Votre premier Script
- 4: Les variables
- 5: Les structures de contrôles
- 6: Mettre du PHP dans du code HTML
- 7: Les cookies
- 8: Le stockage des données : les tableaux
- 9: Le stockage des données : les fichiers
- 10: Le stockage des données : les bases de données
- 11: Les sessions par l'exemple
Le stockage des données : les bases de données
Pour terminer avec le problème du stockage des données, nous allons voir la forme qui est la plus répandue et qui est bien souvent la plus pratique : le stockage dans une base de données. Dans ce cours, j'utilise le gestionnaire MySQL. Nous allons donc voir dans cette section de cours quelques instructions de langage SQL qui permettent d'interagir avec les bases de données. L'interface PhpMyAdmin permet de gérer simplement une base de données.
Voyons tout d'abord comment créer une base de données supplémentaire :
CREATE DATABASE nom_de_la_base;En tapant cette commande SQL via l'interface PhpMyAdmin, la base de données nom_de_la_base est créée. Pour supprimer par la suite cette base de données, on se sert de l'instruction suivante :
DROP DATABASE nom_de_la_base;Ainsi, la base de données nom_de_la_base a été supprimée ainsi que toutes ses données. Maintenant que nous avons vu comment créer ou détruire des bases de données, nous pouvons passer à la gestion des tables qui composent ces bases de données. Voyons tout d'abord comment créer une table en spécifiant les champs qui la composent ainsi que leur type :
CREATE TABLE nom_de_la_table (
id int(8) NOT NULL auto_increment,
name varchar(60) NOT NULL default '',
naissance datet NOT NULL default '0000-00-00',
PRIMARY KEY (id)
);Avec ce code, on va créer une table nom_de_la_table dans la base de données courante. Voici le schéma de la table nom_de_la_table une fois créée :
---------------------------- | id | name | naissance | ----------------------------
On a donc crée les champs suivants :
- id de type INT (entier) qui ne peut pas être nul et qui va s'incrémenter de un automatiquement à chaque insertion dans la table nom_de_la_table.
- name de type VARCHAR (chaîne de caractères) dont la taille peut varier de 1 à 255 caractères. Ce champ aura pour valeur par défaut ce qui est contenu entre les deux quotes.
- naissance de type DATE (date) dont la valeur par défaut est "0000-00-00".
- Et enfin on définit une clé d'index primaire sur le champ id.
Pour voir la liste exhaustive des autres types de champ MySQL, reportez-vous à la doc officielle. Une fois la table créée, on peut modifier ces champs à l'aide de la commande ALTER dont voici les 3 principales utilisations possibles.
Tout d'abord, l'ajout d'un champ à la table nom_de_la_table :
ALTER TABLE nom_de_la_table ADD prename varchar(60) AFTER name;Voici le nouveau schéma de la table nom_de_la_table :
------------------------------------- | id | name | prename | naissance | -------------------------------------
Le champ prename a donc été ajouté. Passons maintenant à la suppression d'un champ sur la table nom_de_la_table :
ALTER TABLE nom_de_la_table DROP naissance;Voici le nouveau schéma de la table nom_de_la table :
----------------------- | id | name | prename | -----------------------
Le champ naissance a bien été supprimé de la table. Enfin, voyons comment renommer la table nom_de_la_table. On veut renommer la table nom_de_la_table en table1.
ALTER TABLE nom_de_la_table RENAME AS table1;La commande DROP permet de supprimer une table entière ainsi que toutes les données qui y sont stockées. Voici sa syntaxe :
DROP TABLE table1;Ainsi, la table table1 n'existe plus.
Maintenant que nous avons vu comment créer, modifier des bases et des tables, on peut passer au traitement des données contenues dans ces tables. Pour cela nous allons voir la syntaxe des commandes suivantes : INSERT, SELECT, UPDATE et DELETE.
Commençons donc par insérer des éléments dans la table exemple (que vous aurez crée au préalable sur le même modèle que la table nom_de_la_table) qui a le schéma suivant :
----------------------- | id | name | prename | -----------------------
Voici la syntaxe d'insertion :
INSERT INTO exemple (id,name,prename) VALUES ('','nom','prenom');Ainsi, après l'exécution de cette syntaxe voici l'état de la table exemple :
----------------------- | id | name | prename | ----------------------- | 1 | nom | prenom | -----------------------
Le champ id s'est incrémenté tout seul puisqu'il est en auto-increment et les deux autres champs ont bien été insérés. Passons maintenant à la commande SELECT. Pour l'exemple, on considère la table exemple dont voici le contenu :
---------------------------------------- | id | name | prename | ville | ---------------------------------------- | 1 | jean | Dupont | paris | ---------------------------------------- | 2 | pierre | Martin | marseille | ---------------------------------------- | 3 | paul | Martin | paris | ----------------------------------------
Sélectionnons toutes les personnes dont le prename est Martin :
SELECT * FROM exemple WHERE prename='Martin' ;Voici le résultat que l'on obtient :
--------------------------------------- | id | name | prename | ville | --------------------------------------- | 2 | pierre | Martin | marseille | --------------------------------------- | 3 | paul | Martin | paris | ---------------------------------------
Maintenant on veut sélectionner toutes les personnes dont le prename est Martin et dont le name est pierre :
SELECT * FROM exemple WHERE prename = 'Martin' AND name = 'pierre';Voici le résultat que l'on obtient :
--------------------------------------- | id | name | prename | ville | --------------------------------------- | 2 | pierre | Martin | marseille | ---------------------------------------
Ici on utilise l'opérateur AND. Maintenant on veut sélectionner toutes les personnes dont le prename est Martin et donc la ville peut être marseille ou paris :
SELECT * FROM exemple WHERE ville = 'marseille' OR ville = 'paris' AND prename = 'Martin';Voici le résultat affiché :
--------------------------------------- | id | name | prename | ville | --------------------------------------- | 2 | pierre | Martin | marseille | --------------------------------------- | 3 | paul | Martin | paris | ---------------------------------------
En SQL, on peut également utiliser les opérateurs logiques normaux tels le +, le -, le *, le <, le >, etc... Enfin pour en finir avec la commande SELECT, voici deux derniers exemples utilisant la clause LIKE en plus.
SELECT * FROM exemple WHERE ville LIKE 'mars';On sélectionne les personnes dont la ville commence par mars.
SELECT * FROM exemple WHERE ville LIKE '%mars%';On sélectionne les personnes dont la syllabe mars est présente dans la ville. Pour terminer avec ce cours sur les base de données, voici deux exemples utilisant les commandes UPDATE et DELETE :
UPDATE exemple SET ville = 'marseille' WHERE id = '1';On modifie la ville de la personne dont l'id vaut 1.
DELETE FROM exemple WHERE id='1';On supprime de la table exemple, la personne dont l'id vaut 1.
Ce cours n'est qu'un bref aperçu des fonctions de base du langage SQL. Pour plus d'informations et des exemples plus difficiles, reportez-vous à la doc MYSQL et aux exemples utilisant les bases de données. Pour terminer ce cours sur le stockage des données, je vous propose donc de vous montrer comment accéder à MYSQL depuis un script php. Pour cela on considère toujours comme existante la table exemple créée toute à l'heure avec son contenu toujours intact. Maintenant créez le fichier connexion.php dont voici le contenu :
<?
/* fichier de connexion à la base de données */
$host = localhost;
$user = root;
$pass = '';
$bdd = test;
$idd = mysql_connect("$host", "$user", "$pass");
mysql_select_db("$bdd", $idd);
?>Enfin, créez le fichier essai.php dont voici le contenu :
<?
include("connexion.php") ;
$select = mysql_query("SELECT * FROM exemple") ; // On se sert de mysql_query() pour éxécuter la requête SQL
$select1 = mysql_num_rows($select); // On compte le nbre de lignes correspondant à notre requête
if ($select1 != 0) // On teste l'existence d'enregistrement correspondant à notre requête
{
echo "id nom prénom ville";
while ($select2 = mysql_fetch_array($select)) // On place dans un tableau les différents champs
{
echo "$select2[id] $select2[name] $select2[prename] $select2[ville]<br/>"; // On les affiche
}
}
else
{
echo"La table est vide";
}
?>
Pour avoir plus de détails sur l'accès aux bases de données depuis un script PHP, reportez vous aux prochains cours sur les sessions.

Ajouter un commentaire