Les instructions PHP pour l`accès à une base de données

publicité
Les instructions PHP pour l'accès à une base
de données MySql
Réfs : Chap 25 p 333
Attention, la lecture de ce chapitre est
fondamental pour la réalisation
technique des projets ! Mieux vaut bien
suivre le présent cours.
Introduction
Contrairement à Javascript,
PHP est un langage disposant
d'instructions lui permettant d'accéder à
une base de données (comme le VBA).
Schéma de fonctionnement de PHP avec une base de donnée
MySQL (Architecture Client-Serveur 3 tier)
Résultat :
Requête : URL
Serveur web
-----------------------------------------------------------------------------------------
Navigateur
Résultat : page HTML
Résultat :
code HTML
Requête :
script
Requête
SQL
SGBD
Résultat :
données
Base de
données
Interpréteur
de scripts
Poste client
Serveur
d’applications
Serveur de
données
Explications






1. Le navigateur indique l'URL http://www.Script.php. Ce lien
désigne le script PHP sur le serveur.
2. Le serveur HTTP (Apache par exemple) transmet le script à
l'interpréteur PHP.
3. L'interpréteur PHP s'exécute et envoie une requête SQL au
SGBD car le script contient des instructions d'accès à une base
de données
4. Le SGBD exécute la requête reçue et transmet le résultat à
l'interpréteur PHP.
5. L'interpréteur PHP reçoit le résultat de la requête et construit
une page HTML. Cette page est retournée au serveur HTTP.
6. Le serveur HTTP transmet la page HTML construite
précédemment au navigateur/client. Celui-ci reçoit donc du code
HTML ; Il l'interprète et affiche le résultat.
La base de donnée support
Nous travaillerons avec la base de
données intitulée "empSce" qui se
compose de deux tables :
 employe
 service
Contenu de la table employe
Contenu de la table service
Lien entre les deux tableaux
Ces deux tableaux sont reliés par le code
du service, ce qui traduit les règles de
gestion suivantes :
 Un employé travaille dans un seul
service
 Un service emploie un ou plusieurs
employés
Installation de la base de données
Installer la base sur le serveur Mysql
chez un hébergeur à partir du script
"empSce.sql"
Instructions PHP permettant l'affichage de données
issues d'une base
Exemple/Support :
Ecrire le script PHP permettant d'afficher
dans un navigateur la liste des employés
de l'entreprise.
Instruction de connexion au serveur
qui héberge la base de donnée
<?
$connexion = mysql_connect("localhost","nomUtil","password");
?>
Commentaires :

$connexion est une variable booléenne qui prend la valeur "vrai" si la connexion au serveur
est établie

localhost est le nom (par défaut) du serveur qui héberge la base de donnée ; peut être
remplacé par son adresse IP.

nomUtil est le nom de l'utilisateur qui se connecte au serveur

password est le mot de passe d'accès au serveur
Remarque :
Chez votre hébergeur, pour les projets à mettre en ligne, il faudra utiliser votre identifiant à la place
de "nomUtil" et votre mot de passe personnel à la place de "password"
Instruction de connexion à la base
de donnée
<?
$connexion = mysql_connect("localhost","nomUtil","password");
mysql_select_db("empSce",$connexion);
?>
Commentaires :
 empSce est le nom de la base de donnée à laquelle on souhaite se connecter
 La connexion à la base est réalisée en utilisant la connexion au serveur établie
précédemment, d’ou la présence de $connexion dans l’instruction.
Remarque :
Chez votre hébergeur, pour les projets, il faudra remplacer empSce par votre
identifiant car c'est également le nom de votre base de donnée Mysql chez free
(chez free, on ne peut avoir qu'une seule base)
Création de la requête qui permettra
de créer le jeu d'enregistrement
<?
$connexion = mysql_connect("localhost","nomUtil","password");
mysql_select_db("empSce",$connexion);
$requete="select * from employe"
?>
Commentaire :
La requête SQL est une chaine de
caractère, stockée dans la variable
$requete
Création du jeu d'enregistrement
basé sur la requête
<?
$connexion = mysql_connect("localhost","nomUtil","password");
mysql_select_db("empSce",$connexion);
$requete="select * from employe";
$resultat= mysql_query($requete,$connexion);
?>
Commentaires :

le jeu d'enregistrement $resultat est un tableau de n lignes et p colonnes

Il a été créé par l'instruction mysql_query qui a exécuté la requête $requete créée
précédemment

Ce tableau $resultat va devoir être parcouru une ligne après l'autre pour afficher son contenu
Instruction pour avancer d’une ligne dans le jeu
d’enregistrement $resultat
<?
$connexion = mysql_connect("localhost","root","fragogsi");
mysql_select_db("empSce",$connexion);
$requete="select * from employe;";
$resultat= mysql_query($requete,$connexion);
$ligne=mysql_fetch_array($resultat);
?>
Commentaires : Cette instruction, exécutée pour la première fois
permet de se positionner sur la première ligne du tableau
$resultat ; elle sera réutilisée par la suite pour avancer sur la ligne
suivante.
Le contenu de la ligne en cours est stocké dans un tableau à une
seule ligne appelé $ligne dont on peut récupérer les valeurs ou
les afficher.
Pour lire l’ensemble du tableau, il faudra avancer d’une ligne à
chaque fois : on utilisera donc une boucle.
Une boucle while pour lire toutes les
lignes du tableau $resultat
while($ligne) {
echo($ligne[0]." ".$ligne[1]." ".$ligne[2]." ".$ligne[3]."
".$ligne[4]."<br />");
$ligne=mysql_fetch_array($resultat);
}
Commentaires :
 While ($ligne) est à traduire par « Tant que la ligne
n’est pas vide»
 echo $ligne[0] permet d’afficher le contenu de la
première case de la ligne
 $ligne=mysql_fetch_array($resultat) permet d’avancer
à la ligne suivante
Variante…
while($ligne){
echo($ligne["matricule"]." ".$ligne["nom"]."
".$ligne["prenom"]." ".$ligne["cadre"]."
".$ligne["service"]."<br />");
$ligne=mysql_fetch_array($resultat);
}
Commentaire :
$ligne["prenom"] équivaut à $ligne[2]
Fermeture de la connexion
Une fois les traitements achevées, la
connexion à la base doit être fermée.
mysql_close($connexion);
Exercice
Améliorer le code précédent pour obtenir
le résultat suivant :
Indication : l'instruction mysql_num_rows($resultat) permet de
compter le nombre de lignes du tableau $resultat
Utilisation d'un fichier de connexion
Lorsqu'un site contient plusieurs pages
nécessitant l'accès à une base de
données, il est pratique d'utiliser un fichier
de connexion appelé par exemple
connexion.php
Dans chaque page, on pourra alors faire
appel à ce fichier en utilisant l'instruction :
include("connexion.php");
Téléchargement