2012
Notions de PHP
Stéphane fossé / Marc Gyr
Hewlett-Packard Company
29/09/2012
1.
Quelques règles de base ................................................................................................................. 2
2.
Afficher un texte : la fonction echo ................................................................................................. 2
3.
Les variables PHP ............................................................................................................................. 2
a.
Les opérateurs ............................................................................................................................. 2
b.
Les opérateurs arithmétiques ..................................................................................................... 2
c.
L'opérateur de concaténation ..................................................................................................... 2
d.
Les opérateurs de comparaison .................................................................................................. 3
e.
Les opérateurs logiques............................................................................................................... 3
f.
Les opérateurs d'incrémentation ................................................................................................ 3
4.
Instructions conditionnelles ............................................................................................................ 4
a.
Le if… elseif….else ....................................................................................................................... 4
b.
L'opérateur ternaire .................................................................................................................... 4
c.
Instruction switch ........................................................................................................................ 5
5.
Les boucles ...................................................................................................................................... 5
a.
La boucle for ................................................................................................................................ 5
b.
Les boucles imbriquées ............................................................................................................... 6
c.
La boucle while ............................................................................................................................ 6
d.
La boucle do …while .................................................................................................................... 6
6.
Les tableaux ..................................................................................................................................... 7
a.
Déclaration et initialisation de tableaux ..................................................................................... 7
b.
Ajout d'une nouvelle entrée dans un tableau ............................................................................. 7
c.
Lecture des éléments d’un tableau ............................................................................................. 7
d.
Parcourir les tableaux avec les boucles : foreach........................................................................ 8
e.
Les fonction utiles........................................................................................................................ 8
f.
Tableaux Multidimensionnels ................................................................................................... 10
g.
Tri de tableaux ........................................................................................................................... 10
7.
Fonctions ....................................................................................................................................... 11
8.
LES FORMULAIRES ......................................................................................................................... 12
a.
La méthode GET ........................................................................................................................ 12
b.
La méthode POST ...................................................................................................................... 12
9.
GESTION DES FICHIERS .................................................................................................................. 13
a.
Ouvrir des fichiers ..................................................................................................................... 13
b.
Ecriture dans un fichier : fwrite ................................................................................................. 13
c.
Récupérer le contenu d’un fichier ............................................................................................. 14
10.
BASE DE DONNEES .................................................................................................................... 14
d.
Acces d’une base de données exemple..................................................................................... 14
e.
Interroger une base de données ............................................................................................... 15
f.
Sélectionner des données dans une base ................................................................................. 16
g.
Insérer des données dans la base ............................................................................................. 17
h.
Les fonction addslashes() et stripslashes : très important. ...................................................... 17
i.
Modifier des données dans la base ........................................................................................... 17
j.
Supprimer des données dans la base ........................................................................................ 17
1. Quelques règles de base




Un script doit être encadrer par <?php et ?>.
Chaque instruction doit se terminer par une ;
Un commentaire sur une ligne commence par //
Un commentaire sur plusieurs ligne commence par /* et se termine par */
2. Afficher un texte : la fonction echo
<?php
echo "je suis en terminale S" ;
echo (2+3)*5 ;
?>
3. Les variables PHP
En PHP, les variables sont représentées par un signe dollar "$" suivi du nom de la variable. Les noms
des variables écrites en minuscules sont différentes des variables écrites en majuscules.
Les variables peuvent de type :






Booléen.
Entier.
nombre à virgule flottante.
chaîne de caractères.
Tableau
Objet..
$a=TRUE ;
// valeur possibles TRUE et FALSE
$i=1 ;
$f=1.125 ;
// remarquez l’utilisation du point
$str="je suis une chaine de caractère" ;
$tab=array("toto",1,TRUE) ;
// nous verrons plus tard 
a. Les opérateurs
Les opérateurs servent à déterminer une valeur en effectuant une opération sur une ou plusieurs
variables.
b. Les opérateurs arithmétiques
$a + $b
$a - $b
$a * $b
$a / $b
$a % $b
Somme de $a et $b.
Soustraction
Multiplication
Division
Reste de $a divisé par $b.
c. L'opérateur de concaténation
Le point « . » est utilisé en PHP comme opérateur de concaténation pour fusionner plusieurs chaînes
en une seule.
< ?php
$t1= "j\’apprends la" ;
$t2=" la programmation" ;
$t=$t1.$t2;
echo "En spécialité ISN, ".$t;
?>
// le \ permet la prise en compte des caractères spéciaux
d. Les opérateurs de comparaison
Opérateur
Dénomination
Effet
Exemple Résultat
==
A ne pas confondre
avec le signe
d'affectation (=)!!
opérateur
d'égalité
Compare deux valeurs
et vérifie leur égalité
$x==3
Retourne 1 si $x est
égal à 3, sinon 0
<
Vérifie qu'une variable
opérateur
est strictement
d'infériorité stricte
inférieure à une valeur
$x<3
Retourne 1 si $x est
inférieur à 3, sinon
0
<=
opérateur
d'infériorité
Vérifie qu'une variable
est inférieure ou égale à $x<=3
une valeur
Retourne 1 si $x est
inférieur ou égale à
3, sinon 0
>
opérateur de
supériorité stricte
Vérifie qu'une variable
est strictement
$x>3
supérieure à une valeur
Retourne 1 si $x est
supérieur à 3, sinon
0
>=
opérateur de
supériorité
Vérifie qu'une variable
est supérieure ou égale
à une valeur
$x>=3
Retourne 1 si $x est
supérieur ou égal à
3, sinon 0
!=
opérateur de
différence
Vérifie qu'une variable
est différente d'une
valeur
$x!=3
Retourne 1 si $x est
différent de 3,
sinon 0
e. Les opérateurs logiques
Opérateur Dénomination Effet
|| ou OR
OU logique
Vérifie qu'une des conditions est réalisée
($x>3)||($y<=5)
Vérifie que toutes les conditions sont réalisées
($x>3)&&($y<=5)
OU exclusif
Vérifie qu'une et une seule des conditions est
réalisée
($x>3)XOR($y<=5)
NON logique
Inverse l'état d'une variable booléenne (retourne la
valeur 1 si la variable vaut 0, 0 si elle vaut 1)
!x==2
&& ouAND ET logique
XOR
!
Syntaxe
f. Les opérateurs d'incrémentation
Ce type d'opérateur permet de facilement augmenter ou diminuer d'une unité une variable. Ces
opérateurs sont très utiles pour les boucles, qui ont besoin d'un compteur (variable qui augmente de
un en un).
Un opérateur de type $x++ permet de remplacer des notations lourdes telles que $x=$x+1 ou
bien $x+=1
Opérateur Dénomination
Effet
Syntaxe Résultat (avec x valant 7)
++
Incrémentation
Augmente d'une unité la variable
--
Décrémentation Diminue d'une unité la variable
$x++
8
$x--
6
4. Instructions conditionnelles
a. Le if… elseif….else
Trois exemples progressifs seront plus clairs qu’un long discours :
<?php
if( $age == 18 )
echo 'Vous avez 18 ans';
else
echo 'Vous n\'avez pas 18 ans';
?>
<?php
if( $age < 14 )
echo 'Vous avez moins de 14 ans';
elseif( $age <= 18 )
echo 'Vous avez entre 14 et 18 ans';
elseif( $age <= 25 )
echo 'Vous avez entre 19 et 25 ans';
else if( $age <= 64 )
echo 'Vous avez entre 26 et 64 ans';
else
echo 'Vous avez plus de 64 ans!';
?>
// $si $age plus petit que < 14
// sinon, si $age plus petit ou égal à 18
// sinon, si $age plus petit ou égal à 25
// sinon, si $age plus petit ou égal à 64
// sinon
<?php
if( $age == 18 || ( $age >= 25 && $age <= 30 ) )
echo 'Vous avez 18 ans ou bien votre âge est compris entre 25 et 30 ans...';
?>
b. L'opérateur ternaire
Cet opérateur permettra d'écrire des versions raccourcies de blocs d'instructions dans le genre:
<?php
$test = 2;
if( $test == 2 )
$var = 1;
else
$var = 0;
?>
Ce code pourrait se réécrire très facilement comme ceci:
<?php
$var = $test == 2 ? 1 : 0;
?>
c. Instruction switch
<?php
switch( $var )
{
case 1:
echo 'La variable vaut 1';
break;
// on fait les tests sur $var
// si $var vaut 1
case 2:
echo 'La variable vaut 2';
break;
// si $var vaut 2
case 15:
echo 'La variable vaut 15';
break;
// on met bien : après la valeur
default:
echo 'La variable a une autre valeur';
// dans tous les autres cas (à ne pas oublier)
}
?>
// on ferme le switch
Le break sert à terminer une suite d'action après le case, ce qui veut dire que des accolades ne sont
pas nécessaires...
5. Les boucles
a. La boucle for
Elle peut se présenter comme ceci:
for( initialisation; condition; incrémentation )
{
bloc d'instruction(s);
}
<?php
for( $i = 1; $i <= 5; $i++ )
echo $i . '<br />';
?>
//pour $i variant de 1 jusque 5 par pas de 1
//on affiche $i
<?php
for( $i = 7; $i >= 0; $i -= 2 ) //pour $i variant de 7 jusqu’à 0 par pas de -2
echo $i . '<br />';
// on affiche $i
?>
b. Les boucles imbriquées
<?php
for( $i = 1; $i <= 10; $i++ )
{
echo 'ligne'.$i.’ : ‘;
// début de la première boucle
// début de ligne
for( $j = 1; $j <= $i; $j++ )
{
echo $j . ' ';
}
// début de la seconde boucle
// fin de la seconde boucle
echo '<br />';
}
?>
// fin de ligne
// fin de la première boucle
Que va afficher ce code ?
c. La boucle while
Elle se présente de la manière suivante:
while( condition )
{
bloc instruction(s);
}
Ainsi, tant que condition est vérifiée, la boucle s'exécute. Cette manière de fonctionner entraîne
deux choses:
- si condition est fausse avant la boucle, celle-ci ne sera pas exécutée
- si la condition change durant l'exécution de la boucle, celle-ci ne s'interrompra qu'à la fin de
l'itération
<?php
$i = 1;
while( $i < 5 )
{
echo $i . '<br />';
$i++;
}
?>
// initialisation de la variable de boucle
// tant que $i est strictement inférieur à 5
// affichage
// incrémentation à ne pas oublier
d. La boucle do …while
La différence entre les deux réside dans le fait que dans le cas de la boucle while, la condition est
examinée avant la boucle tandis que pour la boucle do-while elle est examinée à la fin. Ainsi, même
si cette condition n'est pas vérifiée, la boucle s'exécutera une fois! Voici comme elle se présente:
do
{
bloc d'instruction(s);
}
while( condition );
<?php
$i = 1;
do
{
echo $i . '<br />';
$i++;
}while( $i < 5 );
?>
//ici la condition est évaluée à la fin
6. Les tableaux
Le langage PHP propose deux types de tableaux : les tableaux à index numériques et les tableaux
associatifs où l’index (ou la clé) est une chaine de caractère
a. Déclaration et initialisation de tableaux
<?php
$fruits = array ();
// Déclaration d'un tableau vide
// Déclaration d'un tableau indexé numériquement
$matiere = array (‘maths’,’histoire’,physique’,SVT’);
// Déclaration d'un tableau associatif
$profil = array ( 'nom' =>’ fossé’, 'prenom' => ‘stéphane’, 'age' => 40, 'enseignant’ => true);
?>
b. Ajout d'une nouvelle entrée dans un tableau
Pour ajouter une nouvelle valeur dynamiquement à la fin des tableaux précédents, il suffit de
procéder comme expliqué dans l'exemple suivant :
<?php
// Ajout d'une matière au tableau indexé numériquement
$matiere[] = ‘EPS’;
// Ajout de la taille de la personne dans le tableau associatif
$profil[‘taille’] = 183;
?>
c. Lecture des éléments d’un tableau
Le tableau indexé numériquement
Un tableau indexé numériquement est une liste d'éléments repérés chacun par un index numérique
unique. Le premier élément du tableau sera repéré par l'index 0. Pour accéder à un élement du
tableau, il suffit d'y faire référence de cette manière : $tableau[0],$tableau[1], $tableau[2]
par exemple
$matiere[0]=’maths’ ;
Le tableau associatif
Un tableau associatif est un tableau composé de couples clé chainée / valeur. A chaque clé est
référencée une valeur. Pour accéder à l'une des valeurs du tableau, il suffit d'y faire référence de la
manière suivante :$tableau['cle']. Dans notre exemple précédent, nous avons acces au profil de la
personne de cette façon :
$profil[‘prenom’]=’stéphane’ ;
la chaîne de caractères est un tableau particulier. On peut accéder à chacun de ses caractère en
utilisant un tableau indexé.
$mot=’accident’
$mot[5]=’e’ ;
d. Parcourir les tableaux avec les boucles : foreach
le parcours de tableau se fait à l'aide de boucles, principalement à partir de la structure foreach()
<?php
// Affichage des matieres
foreach($matiere as $m) {
echo $m ,'<br/>';
}
// Affichage du profil
foreach($profil as $cle => $m) {
//utilisation de la commande as
echo $cle ,' : ', $m ,'<br/>';
}
?>
la fonction print_r permet d’afficher un tableau rapidement pour vérifier un contenu par exemple :
<?php
echo '<pre>';
print_r($profil);
echo '</pre>';
?>
e. Les fonction utiles














array_change_key_case — Change la casse des clés d'un tableau
array_chunk — Sépare un tableau en tableaux de taille inférieure
array_combine — Crée un tableau à partir de deux autres tableaux
array_count_values — Compte le nombre de valeurs d'un tableau
array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les
clés
array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour
comparaison
array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de
rappel sur les clés pour comparaison
array_diff — Calcule la différence entre deux tableaux
array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés
array_fill — Remplit un tableau avec une même valeur
array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur
array_flip — Remplace les clés par les valeurs, et les valeurs par les clés
array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index
array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour
comparaison












































array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index,
compare les index en utilisant une fonction de rappel
array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de
rappel sur les clés pour comparaison
array_intersect — Calcule l'intersection de tableaux
array_key_exists — Vérifie si une clé existe dans un tableau
array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau
array_map — Applique une fonction sur les éléments d'un tableau
array_merge — Fusionne plusieurs tableaux en un seul
array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée
array_pop — Dépile un élément de la fin d'un tableau
array_product — Calcule le produit des valeurs du tableau
array_push — Empile un ou plusieurs éléments à la fin d'un tableau
array_rand — Prend une ou plusieurs valeurs, au hasard dans un tableau
array_reduce — Réduit itérativement un tableau
array_replace_recursive — Replaces elements from passed arrays into the first array
recursively
array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux
array_reverse — Inverse l'ordre des éléments d'un tableau
array_search — Recherche dans un tableau la clé associée à une valeur
array_shift — Dépile un élément au début d'un tableau
array_slice — Extrait une portion de tableau
array_splice — Efface et remplace une portion de tableau
array_sum — Calcule la somme des valeurs du tableau
array_udiff_assoc — Calcule la différence entre des tableaux avec vérification des index,
compare les données avec une fonction de rappel
array_udiff_uassoc — Calcule la différence de deux tableaux associatifs, compare les
données et les index avec une fonction de rappel
array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel
array_uintersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur l'index,
compare les données en utilisant une fonction de rappel
array_uintersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur l'index,
compare les données et les indexes des deux tableaux en utilisant une fonction de rappel
array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant
une fonction de rappel
array_unique — Dédoublonne un tableau
array_unshift — Empile un ou plusieurs éléments au début d'un tableau
array_values — Retourne toutes les valeurs d'un tableau
array_walk — Exécute une fonction sur chacun des éléments d'un tableau
array — Crée un tableau
arsort — Trie un tableau en ordre inverse
asort — Trie un tableau et conserve l'association des index
compact — Crée un tableau à partir de variables et de leur valeur
count — Compte tous les éléments d'un tableau ou quelque chose d'un objet
current — Retourne l'élément courant du tableau
each — Retourne chaque paire clé/valeur d'un tableau
end — Positionne le pointeur de tableau en fin de tableau
extract — Importe les variables dans la table des symboles
in_array — Indique si une valeur appartient à un tableau
key — Retourne une clé d'un tableau associatif
list — Assigne des variables comme si elles étaient un tableau
next — Avance le pointeur interne d'un tableau






pos — Alias de current
prev — Recule le pointeur courant de tableau
range — Crée un tableau contenant un intervalle d'éléments
reset — Remet le pointeur interne de tableau au début
shuffle — Mélange les éléments d'un tableau
sizeof — Alias de count
f. Tableaux Multidimensionnels
il est également possible de créer des tableaux à plusieurs dimensions. Ce sont des tableaux de
tableaux.
< ?php
$personne=array() ;
$personne[0]=array(‘nom’=>’toto’,’prenom’=>’titi’) ;
$personne[1]=array(‘nom’=>’alphonse’,’prenom’=>’isidor’) ;
print_r($personne) ;
?>
L’accès se fait sous la forme $personne[0][‘nom’] par exemple ;
g. Tri de tableaux
PHP dispose de nombreuses fonctions pour trier les tableaux, et cette section va vous aider à vous y
retrouver.
Les différences principales sont :
 Certains des tris de tableau sont basés sur les clés, tandis que les autres sont basés sur les
valeurs : $array['cle'] = 'valeur';
 Certains tris maintiennent la corrélation entre les clés et les valeurs, et d'autres non, ce qui
signifie que les clés sont généralement réaffectées numériquement (0,1,2 ...)
 L'ordre du tri peut être : alphabétique, croissant, décroissant, numérique, naturel, aléatoire
ou personnalisé.
Nom de la fonction
asort()
arsort()
krsort()
ksort()
natcasesort()
natsort()
rsort()
sort()
uasort()
uksort()
usort()
Tri par
valeur
valeur
clé
clé
valeur
valeur
valeur
valeur
valeur
clé
valeur
Attributs de fonctions de tri
Association clé-valeur
Ordre de tri
oui
croissant
oui
décroissant
oui
décroissant
oui
croissant
oui
naturel, insensible à la casse
oui
naturel
non
décroissant
non
croissant
oui
Défini par une fonction utilisateur
oui
Défini par une fonction utilisateur
non
Défini par une fonction utilisateur
7. Fonctions
Une fonction est un bloc de code PHP destiné généralement à être réutilisé plusieurs fois. Plutôt que
d'écrire plusieurs fois le morceau de code, on le met dans une fonction, et c'est cette fonction que
l'on appellera dès qu'on l'aura décidé.
<?php
function mafonction()
{
}
?>

On constate que le premier mot est le mot function, il est obligatoire et signifie que le bloc
traité par PHP sera une fonction.
 Une fonction comporte toujours des parenthèses.
 Il existe deux grands types de fonctions : les fonctions qui retournent une valeur, et celles qui
n'en retournent pas (on appelle ces fonctions des procédures).
Exemple de procédure affichant "bonjour!" :
<?php
function hello ()
{
echo 'bonjour !';
}
?>
Pour appeler votre fonction, vous n'aurez plus qu'à taper ceci :
<?php
hello (); //appelle la fonction "hello_world" qui va afficher "Bonjour !"
?>
Les paramètres sont des variables que l'on place entre les deux parenthèses. Ces paramètres
serviront de données sur lesquelles effectuer la fonction.
<?php
function produit($nombre1, $nombre2)
{
return $nombre1 * $nombre2;
}
?>
Le mot clé return permet de renvoyer une valeur.
De même pour appeler la fonction :
<?php
echo produit(10, 2);
?>
Nous pouvons assigner des valeurs par défaut aux paramètres.
<?php
function produit($nombre1 = 10, $nombre2 = 2)
{
return $nombre1 * $nombre2;
}
?>
<?php
echo produit();
echo produit(5,2);
?>
Attention, les variables qui sont définies à l’intérieur d’une fonction ne sont pas visibles de
l’extérieur. Nous verrons peut-être une alternative à ceci en déclarant une variable comme GLOBAL à
l’intérieur d’une fonction.
8. LES FORMULAIRES
a. La méthode GET
Commençons par concevoir un formulaire en langage HTML
<form action="welcome.php" method="get">
Nom: <input type="text" name="nom" /><br />
Prénom: <input type="text" name="prenom" /><br />
<input type="submit" value="OK" />
</form>
Quand l’utilisateur clique sur le bouton ‘valider’, l’url transmise au serveur sera de la forme :
http://localhost/welcome.php?nom=fosse&prenom=stephane
Les données du formulaire passent donc par l’url et sont visibles de l’utilisateur.
Dans la page welcome.php les données peuvent être récupérer dans le tableau associatif
superglobal $_GET.
$_GET[‘prenom’]=’stephane’ et $_GET[‘nom’]=’fosse’ ;
b. La méthode POST
Il suffit de changer la méthode dans la description du formulaire, c’est préférable pour par exemple
passer des valeurs de champs cachés.
<form action="welcome.php" method="post">
Les variables sont alors récupérées dans la variable $_POST de la même façon qu’avec la méthode
GET
9. GESTION DES FICHIERS
a. Ouvrir des fichiers
On teste en premier l’existence du fichier puis on décide de l’ouvrir.
<?php
$fichier=’fiche.txt’ ;
if( !file_exist($fichier))
//on teste si le fichier existe
{
echo ‘le fichier n’existe pas » ;
// le fichier n’existe pas
}
else
{
$f=fopen($fichier, ‘r’);
//on tente l’ouverture du fichier en lecture seul et on crée un pointeur de fichier
if($f) echo ‘ le fichier ‘.$fichier.’ est ouvert’ ;
// il est ouvert 
fclose($f) ;
// on le ferme
}
?>
Le second paramètre le la fonction fopen est le mode d’ouverture :
 r : Ouvre un fichier en lecture seule, place le pointeur en début de fichier (r pour read).
 r+ : Ouvre le fichier en lecture et écriture, place le pointeur en début de fichier.
 w : Ouvre un fichier en écriture seule, place le pointeur en début de fichier. Si le fichier existe
déjà, son contenu est écrasé, dans le cas contraire il crée le fichier (w pour write).
 w+ : Ouvre le fichier en mode lecture et écriture, place le pointeur au début du fichier. Si le
fichier existe déjà, son contenu est écrasé, dans le cas contraire, il crée le fichier.
 a : Ouvre le fichier en écriture seule, place le pointeur à la fin du fichier. Si le fichier n'existe
pas, on tente de le créer (a pour append).
 a+ : Ouvre le fichier en mode lecture et en écriture, place le pointeur à la fin du fichier. Si le
fichier n'existe pas, on tente de le créer.
Le premier argument de la fonction fopen peut être le nom du fichier lui-même ou un chemin d'accès
vers le fichier lui-même.
b. Ecriture dans un fichier : fwrite
<?php
$fichier = 'exemple.txt';
$text = "ma chaine de caractères";
$f = fopen($fichier,"w");
if (fwrite($f, $text) == FALSE)
{
echo 'Impossible d\'écrire dans le fichier '.$fichier.'';
exit;
}
echo 'Ecriture terminé';
fclose($f);
?>
c. Récupérer le contenu d’un fichier
<?php
$contents = file_get_contents(‘fiche.txt ‘);
?>
//pas besoin de l’ouvrir dans ce cas
On peut également récupérer le contenu d’un fichier ligne par ligne avec la commande file()
<?php
$fichier = fiche.txt';
if(file_exists($fichier))
{
$tab = file($f);
$nb = count($tab);
}
?>
10.
// place le fichier dans un tableau
// compte le nombre de ligne du fichier
BASE DE DONNEES
Les étapes suivantes donnent le cheminement d’une transaction de base de données Web typique:






Le navigateur Web d’un utilisateur envoie une requête http pour une page Web particulière;
Le serveur reçoit la requête, récupère le fichier .php et le passe au moteur PHP afin qu’il soit
traité ;
Le moteur PHP commence à analyser le script. A l’intérieur de ce script se trouve une
commande permettant de se connecter à la base de données et d’exécuter une requête. PHP
ouvre une connexion vers le serveur de la base de données et transmet la requête
appropriée ;
Le serveur de la base de données reçoit la requête de base de données et la traite, puis
renvoie les résultats au moteur PHP ;
Le moteur PHP termine l’exécution du script, ce qui consiste généralement en un formatage
des résultats de la requête en HTML. Il envoie ensuite le fichier HTML obtenu au serveur
Web.
Le serveur Web transmet la page HTML au navigateur, pour que l’utilisateur puisse voir le
résultat.
a. Acces d’une base de données exemple
Supposons que nous ayons créé une base de données ‘exemple’ grace à PHPmyAdmin et une table
‘profil’ dans cette base comprenant :
 un champ id de type numérique qui s’incrémente automatiquement
 un champ nom de type varchar(30) (une chaine limitée à 30 caractères).
 un champ prenom de type varchar(30).
la fonction mysql_connect() permet de se connecter au serveur de la base de la base de données. Sa
syntaxe est
int mysql_connect([string nom_serveur], [string nom_utilisateur], [string mot_passe]);
Elle renvoie un identificateur de lien si l’accès est effectué et 0 sinon.
<?php
$db = mysql_connect("localhost", "root", "");
// l'identificateur de lien est enregistré dans $db
?>
La fonction mysql_select_db() permet de sélectionner une base de données existante .
Sa syntaxe est
int mysql_select_db( string nom_base, [int identificateur_connexion]);
< ?php
mysql_select_db(‘profil’,$db) ;
}
La fonction mysql_close() permet de vous déconnecter de la base de données :
boolean mysql_close([mixed identificateur_connexion]);
< ?php
mysql_close($db) ;
}
b. Interroger une base de données
La fonction mysql_query() permet d’envoyer une requête la base de données.
En cas de succès,
 dans le cas d’une requête d’interrogation, un identificateur de résultat qui permet de
récupérer les résultats des requêtes,
 dans le cas d’autres requêtes 1.
En cas d’échec, elle renvoi false.
La fonction Mysql_fetch_array() retourne une ligne de résultat sous la forme d'un tableau associatif.
array mysql_fetch_array ( resource result_identifier [, int result_type])
<?php
$resultat = mysql_query("select * from profil",$db);
while ($ligne = mysql_fetch_array ($resultat))
{
echo "<br>".$ligne["nom"]." ";
echo $ligne["prenom"]." ";
}
?>
Un exemple complet de connexion et d’interrogation :
<?php
$db = mysql_connect("localhost", "root", "");
if($db!=0)
{
if( mysql_select_db(‘profil’,$db))
{
$resultat = mysql_query("select * from profil",$db);
while ($ligne = mysql_fetch_array ($resultat))
{
echo "<br>".$ligne["nom"]." ";
echo $ligne["prenom"]." ";
}
}
}
?>
c. Sélectionner des données dans une base
La commande SQL "SELECT" comporte trois clauses qui vont nous servir pour rechercher et ordonner
les données :
La clause "WHERE" , la clause "ORDER BY" et la clause "LIMIT".
La clause "WHERE" ajoute une condition à la recherche. Le mot clé LIKE recherche une
correspondance floue d’une chaîne de caractères.
<?php
$Sql="SELECT * from profil where nom = ‘gyr’";
$Sql="SELECT * from profil where nom LIKE '%g'";
//recherche les profils dont le nom commence par "g"
$Sql="SELECT * from profil where nom LIKE '%os%'";
//recherche les profils dont le nom contient "os"
$Sql="SELECT * from profil where nom LIKE '_o%'";
//recherche les livres dont le titre dont la deuxième lettre sera égale à "o"
?>
La clause "ORDER BY" spécifie le nom de champ sur lequel portera de tri du résultat. Les mots clés
"ASC" et "DESC" précisent l’ordre croissant et décroissant. Par défaut le tri aura lieu dans l’ordre
croissant.
<?php
$Sql="SELECT * from profil ORDER BY nom desc";
//Affiche tous les profils dans l'ordre décroissant du nom.
?>
La clause "LIMIT" indique les limites en numéros de ligne des enregistrements à traiter. S’il ne figure
qu’une seule valeur, cela signifie que la table sera traitée à partir de la valeur indiquée. S’il y a deux
limites séparées par une virgule, la table sera traitée entre les valeurs indiquées, bornes comprises.
Exemple :
<?php
$Sql="SELECT * from profil LIMIT 3,7";
?>
d. Insérer des données dans la base
INSERT est l’instruction SQL qui permet d’ajouter des lignes de données (enregistrements) dans une
table de base de données.
Exemple :
<?php
$Sql="insert into profil (nom ,prenom) value(‘sagnier’, ‘marc’)";
?>
Lors des opérations d’insertion de modification ou de sélection de données dans une base certains
caractères doivent faire l’objet d’un traitement particulier afin d’être reconnu correctement.
e. Les fonction addslashes() et stripslashes : très important.
La fonction php addslashes() échappe(ajoute un \ ) les caractères qui doivent l'être, retourne la
chaîne pouvant être utilisé dans une requête de base de données.
stripslashes() retourne une chaîne dont les antislash ont été supprimés.
<?php
$Sql="insert into profil (nom ,prenom) value(addslashes(‘N’bolo’), ‘Eric)";
//sans le addslashes, il y une erreur sql
?>
f. Modifier des données dans la base
UPDATE est une instruction SQL qui permet de modifier une ou plusieurs colonnes dans un
enregistrement.
<?php
$Sql="update profil SET prenom = ‘toto’,nom=’gyrounet’ WHERE nom =’gyr’";
?>
g. Supprimer des données dans la base
DELETE est l’instruction SQL qui permet de supprimer d'une table un ou plusieurs enregistrements
correspondant à une condition particulière. DELETE est à manipuler avec grande précaution.
<?php
$Sql = "DELETE FROM profil WHERE nom= ‘gyrounet’";
?>