Vous êtes sur la page 1sur 100

Formation PHP

CREFOC MAHDIA

Janvier 2008

Inspecteur : Lotfi Elayeb Formateur : Mourad SFAR


Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License) 1
Objectifs

 Connaître les composantes logicielles d’un site Web dynamique ;

 Maîtriser le langage PHP ;

 Créer et manipuler des bases de données MySQL grâce à l’outil


PHPMyAdmin ;

 Développer des sites web dynamiques intégrant des bases de


données MySQL ;

 Administrer le SGBD MySQL.

2
Le contexte
d’utilisation du PHP

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
3
Plan

 Les défauts du langage HTML

 Les différentes solutions proposées

 Présentation et historique du PHP

4
Les défauts du langage HTML

• Absence des structures algorithmiques (conditionnelles ou


itératives)

• Un langage de création d’interface sans aucune logique


de programmation procédurale( notion de sous
programmes, type de données, variables…).

• Aucune communication avec la plate forme d’exécution


(date système, le navigateur utilisé..)

• Absence de possibilité d’interfaçage avec une base de


données.

5
Les défauts du langage HTML

• Absence de gestionnaires d’évènements autre que


l’événement clique (pas de gestionnaires d’évènements
par exemple pour le chargement d’une page ou le survol
d’un objet)

• Absence de mécanismes de verrouillage de code source


(pour pouvoir le visualiser , il suffit d’utiliser l’option
affichage code source de votre navigateur)

6
Les différentes solutions pour surmonter
les défauts du langage HTML

Utilisation des langages côté client (JavaScript ou le VbScript) 

Utilisation des langages côté serveur (ASP, PHP, JSP,Cold Fusion


…) 

7
Introduction au langage PHP
PHP est un langage de script qui s'inclut dans le langage HTML. La
syntaxe du langage PHP provient du C, du Java et du Perl, avec un petit
nombre de fonctions inédites par rapport à ces langages.

Les principaux atouts du PHP sont :

• La gratuité et la disponibilité du code source


• La possibilité d'inclure le script PHP au sein d'une page HTML
• La simplicité d'interfaçage avec des bases de données (de
nombreux SGBD sont supportés, mais le plus utilisé avec ce langage
est MySQL, un SGBD gratuit disponible sur les plateformes Unix,
Linux, et Windows)) ;
• L'intégration au sein de nombreux serveurs web (Apache,
Microsoft IIS, etc…)
8
L’environnement de
programmation PHP, MySql

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
9
Plan

 Les différentes solutions pour installer l’environnement


de PHP
 Installation du serveur Web Apache 1.3.33
 Installation de PHP 4.3.10
 Configuration d’Apache, PHP4
 Installation de l’interface PHPMyAdmin 2.6.1

10
Les différentes solutions pour installer
l’environnement PHP

On peut installer l’environnement de PHP de deux façons :

Manuellement, en configurant les différents fichiers d’Apache et PHP.

Automatiquement, en utilisant un utilitaire qui installe et configure


automatiquement tout ce dont vous avez besoin.

11
Les différentes solutions pour installer
l’environnement PHP

La deuxième façon la plus simple pour installer l’environnement


PHP est de télécharger EazyPHP à partir de l’adresse :

http://www.easyphp.org/

en cliquant sur EasyPHP 1.8. Cet utilitaire va installer et configurer tout


l’environnement PHP (Apache 1.3.33, PHP 4.3.10, PHPMYADMIN
2.6.1 et MYSQL 4.1.9)

12
La syntaxe de base du
PHP

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
13
Plan

 Présentation du langage PHP


 Apports du langage PHP
 Les principes syntaxiques de base du PHP

14
Présentation du PHP

PHP est un langage de script qui s'inclut dans le langage HTML.

Le but du langage PHP est de permettre aux développeurs de sites Web


d'écrire rapidement des pages Web dynamiques.

Ce qui distingue le PHP des langages de script comme le JavaScript est


que le code est exécuté sur le serveur et non par le navigateur. Le client
ne reçoit que le résultat, sans aucun moyen d'avoir accès au code qui a
produit l’affichage.

15
16
Les Apports de PHP

Le langage PHP possède les mêmes fonctionnalités que les autres
langages permettant d'écrire des scripts CGI, comme par exemple :

- Collecter des données.


- Générer dynamiquement des pages web
- Envoyer et recevoir des cookies.

La plus grande qualité du langage PHP est le support d'un grand
nombre de bases de données en mode natif dont : Adabas D, dBase,
Empress, FilePro, Informix, InterBase, mSQL, MySQL, Oracle,
PostgreSQL,

17
Les Apports de PHP

Disponibilité sur plusieurs systèmes d’exploitation :


UNIX, Windows et MAC

Génération des fichiers PDF ou des images GIF

Langage orienté objet

18
Les principes syntaxiques de base du PHP

La syntaxe du PHP est très proche de celle du langage C.

Quatre méthodes pour insérer un script PHP dans une page PHP :

 Standard :
<?php echo (″exemple en PHP″ ) ; ?>
 Option short_open_tag :
<? echo (″exemple en PHP″) ; ?>
 Option asp_tags :
<SCRIPT LANGUAGE= ‘php’>echo (″exemple en PHP″)
</SCRIPT>
 Marqueur script du HTML :
<% echo (″exemple en PHP″) ; %>

19
Les principes syntaxiques de base du PHP

Une instruction se termine par un point-virgule.


Commentaires :

Exemple :
<?
//commentaire sur une ligne
echo "<b>Ma permiere page PHP</b><br>";
echo "<br>";
/* Commentaire
sur plusieurs lignes */
print "bonjour";
?>

20
Les principes syntaxiques de base du PHP
Exemple :
<html>
<head>
<Title>Ma première page en PHP</Title>
</head>
<body>
<b>Bienvenue au langage html</B>
<br><br>
<script language=javascript>
document.write("<I>Bienvenue au Javascript</i>");
</script>
<br>
<?
echo("<br> <u>Bienvenue au langage PHP </u>");
?>
</body>
</html>
21
Variables, constantes et types de données
Le recours à des constantes constitue un moyen pratique pour affecter
une valeur à un identifiant, puis de faire référence à cet identifiant dans
l’ensemble du programme.
Pour définir une constante, on fait appel à la fonction define().
Exemple :
<?
define("LYCEE", "IBN SINA MAHDIA");
echo "Je travaille au Lycee ".LYCEE;
?>
Exemple :
<?
define("SLT", "Salut toi.", true);
echo SLT; // affiche "Salut toi."
echo Slt; // affiche "Salut toi."
?>
22
Variables, constantes et types de données

En PHP, les variables sont représentées par un signe dollar suivi du nom
de la variable.

Une variable est automatiquement déclarée dès que vous lui affectez
une valeur.

L’affectation est réalisée à l’aide de l’opérateur (=).

Exemple :

<?
$nom = "Mejdi";
$prix = 15.200 ;
?>

23
Variables, constantes et types de données

PHP tient compte de la casse des caractères dans les noms de


variables.
Ainsi, $chaine ou $Chaine permet d'adresser deux variables bien
distinctes.
La fonction gettype() permet de déterminer le type d’une variable PHP.
La fonction settype() permet de modifier le type d’une variable PHP.

Exemple :
<?
$a=12;
echo("Le type de la variable $"."a est :".gettype($a)."<br>");
settype($a,"double");
echo("Le type de la variable $"."a est :".gettype($a)."<br>");
$b=(double)$b; //converti un entier en un réel
?>
24
Les structures
algorithmiques en PHP

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
25
Plan

 Structures conditionnelles
 Structures itératives
 Structures de branchement

26
Les structures de contrôle en
PHP
Instruction if :
if (condition)
{ expression vrai }
else
{ expression faux }

Exemple :
<?
$a = 10; $b = 11;
print "a est égale à $a <br>b est égale à $b<br>";
if ($a > $b)
{ print " ==> a est plus grand que b"; }
else { print " ==> a est inférieure à b"; }
?>
27
Les structures de contrôle en PHP

Instruction if ..elseif :
if (condition)
{ expression vrai }
elseif (condition)
{ expression vrai }
else
{ expression faux }

28
Les structures de contrôle en PHP

Exemple :
<?
$a = 10; $b = 11;
print "a est égale à $a, b est égale à $b. ";
if ($ a > $b)
{ print "==> a est plus grand que b"; }
elseif ($ a == $b)
{ print "==> a est égal à b"; }
else
{ print "==> a est inférieure à b."; }
?>

29
Les structures de branchement en PHP

switch (expression)
{
case resultat1 :
# instructions à exécuter si l’expression vaut resultat1...
break ;
case resultat2 :
# instructions à exécuter si l’expression vaut resultat2...
break ;
...
default :
# instructions à exécuter en dernier recours...
}

30
Les structures de branchement en PHP

Exemple :

Switch ($type)
{
case "Femme" : echo "Bonjour Madame" ;
break ;
case "Homme" : echo "Bonjour Monsieur" ;
break ;
default :
echo "Bonjour, vous êtes bizarre !" ;
}

31
Les structures itératives en PHP
Les structures itératives (boucles) constituent un moyen d’exécuter
un bloc de code un nombre de fois donné, ou jusqu’à ce qu’une
condition particulière soit satisfaite.

Boucle While :
while (condition)
{ instructions}
Exemple :
<?
$i = 1;
while ($i <= 10)
{ print $i++." ";
/* La valeur affichée est $i avant l'incrémentation */
}
?> 32
Les structures itératives en PHP

Boucle do..while :
do
{
instructions
} while(conditions)

Exemple :
<?
$i = 0;
do {
print $i++." ";
} while ($i<=10);
?>

33
Les structures itératives en PHP
Boucle For :
for (expr1; expr2; expr3)
{
instructions
}

Exemple :
<?
for ($i=0 ; $i<=10 ; $i++)
{
echo $i;
echo "<br>";
}
?>
34
Les structures itératives en PHP

Exercice :
On vous demande d’écrire un script PHP permettant d’afficher
par intermittence de couleurs (rouge et bleu) la phrase
« Bienvenue au langage PHP » tout en modifiant la taille de la
police de 1 à 7.

35
Les types de données
structurés en PHP

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
36
Plan

 La notion de tableau en PHP


 Initialisation d’un tableau
 Parcourir un tableau
 Les fonctions de traitement des tableaux
 Trier un tableau
 Les fonctions de traitement des chaînes de caractères

37
La notion de tableau en PHP

Un tableau est composé d’un certain nombre d’éléments possédant


chacun une valeur propre ainsi qu’une clé ou indice , permettant de
faire référence à cet élément.

Par défaut, l’indice du premier élément d’un tableau est zéro.


zéro

L’indice dans le tableau peut être indifféremment un entier ou une


chaîne de caractères.

38
Initialisation d’un tableau

Deux méthodes sont possibles :


 Affecter directement les valeurs au tableau :

Exemple :
<?
$tableau[0]="a";
$tableau[1]="b";
$tableau[2]=″c″;
?>

39
Initialisation d’un tableau
 Utiliser la fonction array().

Exemple :
<?
$tableau = array(″a″, ″b″, ″c″) ;
?>

On peut utiliser l’opérateur => afin de spécifier les indices


particuliers des éléments d’un tableau.

Exemple :
<?
$tableau = array(1=>"a", 2=>"b", 3=>"c") ;
?>

40
Parcourir un tableau

Les deux fonctions each() et list() peuvent être utilisées


conjointement afin de parcourir un tableau, même si les indices ne
sont pas séquentiels.

Exemple :

<?
$tableau[0]="a";
$tableau[1]="b";
$tableau[2]="c";
while (list ($cle, $valeur) = each ($tableau))
{
echo ("L'élément $cle est égal à $valeur <br>");
}
?>
41
Les fonctions de traitement des tableaux
Fonction Description

reset() Remet le pointeur interne de tableau


au début.

pos() Retourne la valeur de l'élément


courant d'un tableau.

key() Retourne l'indice de l'élément


courant d'un tableau.

next() Avance le pointeur interne d'un


tableau.

prev() Recule le pointeur courant de


tableau.

end() Positionne le pointeur de tableau en


fin de tableau.

sizeof() Retourne le nombre d’éléments dans


un tableau.

42
Trier un tableau

PHP dispose de plusieurs fonctions permettant de trier un tableau.

La plupart de ces fonctions ne retournent pas de valeur mais


modifient simplement le tableau passé en paramètre.

 Les fonctions sort() et rsort() permettent de trier un tableau par


valeur croissante ou décroissante.

 On peut également trier un tableau par indice, à l'aide des


fonctions ksort() et krsort(), qui s'utilisent de la même manière que
les fonctions précédentes.

43
Parcourir un tableau

Exercice :

On vous demande d’écrire un script PHP permettant de :

• Remplir un tableau avec des entiers,

• Afficher le nombre et la somme des éléments de ce tableau,

• Trier le tableau par ordre croissant et l’afficher.

44
Trier un tableau
Exemple :
<?
$pays = array ("us" => "Etats-Unis", "ch" => "Suisse", "ca" => "Canada",
"fr" => "France","de" => "Allemagne");
sort ($pays);
while (list ($cle, $val) = each ($pays))
{
echo "L'élément $cle est égal à $val<br>\n";
}
?>

45
Les fonctions de traitement des chaînes de
caractères
 substr() : string substr(string source, int début, int [taille])

► Retourne une portion de string, spécifiée avec le début


début et la longeur taille.

Exemple :
<?
$ch=“Je vois la vie en rose";
echo "La chaine de depart est : $ch <br>";
echo(substr($ch,8,6));
echo"<br>";
echo(substr($ch,-4));
echo"<br>";
echo(substr($ch,-14,6));
?> 46
Les fonctions de traitement des chaînes de
caractères
 trim() : string trim (string str)
► Cette fonction retire les espaces blancs de début et de fin de
chaîne, et retourne la chaîne nettoyée.

 strlen() : int strlen (string str)


► Retourne la longueur de la chaîne string.

 str_replace() : string str_replace (string str, string str1, string str2)


► Remplace toutes les occurences d'une sous chaîne str
contenue dans une chaîne str2 par une autre chaîne de caractères
str1.

Exemple

47
Les fonctions de traitement des chaînes de
caractères
 implode() : string implode (string separateur, array tableau)

► Retourne une chaîne constituée de tous les éléments du


tableau,pris dans l'ordre, transformés en chaîne, et séparés par
séparateur.

 explode() : array explode (string separateur, string chaine)

► Retourne un tableau qui contient les éléments de la chaîne


string, séparés par séparateur.

48
Les fonctions de traitement des chaînes de
caractères

Exemple :

<?

$chaine="388137144147175185813212145127
";
$tab=explode("1",$chaine);
$i=0;
echo "|";
while($i<sizeof($tab))
{
echo "<b> ".$tab[$i]."</b> |";
$i++;
}
49
?>
Les fonctions de traitement des chaînes de
caractères

Exemple :

<?
$tab=array(388,37,44,47,75,858,32,2,45,27);
$chaine=implode("1",$tab);
echo $chaine;
?>

50
Les expressions régulières

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
51
Plan

 La notion d’expressions régulières en PHP


 Les symboles des expressions régulières
 Les fonctions utilisant les expressions régulières

52
La notion d’expressions régulières en
PHP

 Une expression régulière permet de caractériser le format d'une


chaîne de caractère.

 Le but étant de rechercher ou de remplacer un motif dans une


chaîne de caractère.

 Une expression régulière est une chaîne de caractères contenant


des caractères spéciaux et des caractères standards.

53
Les Symboles des expressions régulières

Symbole et Signification Exemples


Les symboles ^ et $ indiquent "^d": chaîne qui commence par "d".
le début et la fin d'une chaîne, "f$": chaîne qui se termine par "f".
afin de la délimiter "^t$": chaîne qui commence et se termine par « t".

* =>"zéro ou plusieurs" "abc*": chaîne qui contient "ab" suivie de zéro ou


plusieurs "c" ("abc", "abcc" etc..)

+ =>"un ou plusieurs" "^abc+": chaîne qui commence par "ab" suivie de un ou


plusieurs "c" ("abc", "abcc" etc..)
? => "un ou aucun" "abc?": chaîne qui contient "ab" suivie de zéro ou un "c"
("ab" ou "abc")

54
Les Symboles des expressions régulières

Symbole et Signification Exemples


Les accolades {X,Y} "abc{2,}": chaîne qui contient "ab" suivie de deux "c" ou
permettent de donner des plus ("abcc" etc..).
limites de nombre. "abc{2,4}": chaîne qui contient "ab" suivie 2, 3 ou 4 "c"
("abcc" .. "abcccc")

Les parenthèses ( ) permettent "a(bc)*": chaîne qui contient "a" suivie de zéro "bc" ou
de représenter une séquence plus
de caractères.
La barre verticale | se "un|le": chaîne qui contient "un" ou "le".
comporte en tant qu'opérateur "(un|le) cours": chaîne qui contient "un cours" ou "le
OU. cours"

55
Les Symboles des expressions régulières

Symbole et Signification Exemples


Le point . indique n'importe quel "^.{3}$": chaîne qui contient 3 caractères.
caractère (une fois)
Les crochets [ ] définissent une "[abc]": chaîne qui contient un "a", un "b", ou
liste de caractères autorisés (ou un "c".
interdits).
Le signe - permet, quant à lui, de "[a-z]": chaîne qui contient un caractère
définir un intervalle. compris entre "a" et "z".

Le caractère ^ après le premier "[^a-zA-Z]": chaîne qui ne contient pas par


crochet indique une interdiction. une lettre.

56
Les fonctions utilisant les expressions régulières

 ereg() : booléen
ereg (chaîne expression, chaîne texte, [tableau occurrences])

► Permet d'évaluer le texte passé en paramètre, à partir de


l'expression régulière expression.

Exemple :

<?
if(ereg(″^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$″, $email))
{ echo (″Adresse email valide″) ; }
else { echo (″Adresse email erronée″) ; }
?>
57
Les fonctions utilisant les expressions régulières

 ereg_replace() : chaîne
ereg_replace(chaîne expr, chaîne de remplacement, chaîne texte)

► Retourne la chaîne texte passée en paramètre, modifiée à l'aide


de l'expression régulière et de la chaîne de remplacement.

Exemple :

<?
$chaine = "Ceci # est # un test";
$chaine = ereg_replace("[^A-Za-z0-9]", "_", $chaine);
print $chaine; //Affiche : Ceci _ est _ un test
?>

58
Les fonctions en PHP

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
59
Plan

 La notion de fonctions en PHP

 La portée d’une variable

 Les variables statiques

60
La notion de fonctions en PHP

Une fonction est un bloc de code défini une fois, puis invoqué à partir
d’autres endroits du programme.

Une fonction peut accepter un ou plusieurs arguments, accompli un


ensemble d’opérations prédéfinis selon ces arguments puis renvoie
une valeur en résultat.

function ma_fonction ($arg_1, $arg_2, ..., $arg_n)


{
// Corps de ma fonction...
return $valeur_de_retour ;
}

61
La notion de fonctions en PHP

Exemple :
Function carre($nombre)
{
return $nombre * $nombre ;
}
echo carre(3) ; //affiche la valeur 9

62
La notion de fonctions en PHP

Exercice :
Écrire un script PHP contenant une fonction permettant de
tracer un tableau de x lignes et y colonnes.

Rappel HTML :

<TABLE border=1>
<TR> // TR: trace une ligne
<TD> Cellule 1 </TD> // TD: trace une colonne
<TD> Cellule 2 </TD>
</TR>
</TABLE>
63
La portée d’une variable

La portée d’une variable détermine quelles parties du programme y ont


accès.
Pour la plupart des variables, la portée concerne la totalité d'un script
PHP. Mais, lorsque vous définissez une fonction, la portée d'une
variable définie dans cette fonction est locale à la fonction.

Exemple :

<?
$var=″a″ ;
function change_var()
{ $var = ″b″ ;}
change_var() ;
echo(″$var″) ; //affiche ″a″
?>
64
La portée d’une variable
 Pour accéder à une variable globale au sein d’une fonction il faut
la déclarer global au sein de la fonction.

Exemple :
<?
$var=″a″ ;
function change_var()
{
global $var ;
$var = ″b″ ;
}
change_var() ;
echo(″$var″) ; //affiche ″b″
?>
65
Les variables statiques

Une variable statique est une variable locale qui ne perd pas sa valeur
à chaque fois que la fonction est exécutée.

On utilise l’attribut static pour déclarer une telle variable.

Ce type de variable est très utile pour la création de fonctions


récursives.

66
Les variables statiques

Exemple :

<?
function compte ()
{
static $compteur = 0 ;
$compteur++ ;
echo "$compteur " ;
if ($compteur < 10) compte() ;
}
compte() ;
?>
► Entre chaque appel de la fonction compte() : La variable
$compteur ne sera pas réinitialisée.
67
Traitement des
formulaires HTML en PHP

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
68
Plan

 Idée et Objectif

 Squelette d’un script de traitement de formulaire

 Exemple

69
Idée et Objectif

Le but est de présenter une méthodologie de traitement des


formulaires dans le cas d’un site web dynamique.

La structure générale d’un script de traitement de formulaire doit :

• Implémenter le formulaire lui même ;


• Procéder à des contrôles de saisie ;
• Effectuer des actions suivant que la saisie est validée ou non.

70
Squelette d’un script de traitement de
formulaire
<html><body>…
<?
//Est-ce la première fois qu’on passe dans le script
//NON
if(NON)
{
//contrôle sur la saisie…

//Si la saisie est correcte : SAISIE VALIDE


if(SAISIE VALIDE)
{
// Actions diverses…
// Message…
}
//SINON : Saisie INVALIDE
else
{
//Actions diverses…
//Message..}
}
71
Squelette d’un script de traitement de
formulaire

//OUI ou saisie invalide


if(OUI ou SAISIE INVALIDE)
{
?>
<form method=″POST″ action=″script.php″>

<INPUT TYPE=″HIDDEN″ NAME=″formulaire″ value=″ok″>
</FORM>
<?
}
?>

</BODY>
</HTML>

72
Exemple

Admettons que nous devions élaborer un formulaire assurant la saisie


du nom, prénom et de l’adresse e-mail d’un visiteur, afin de les
stocker dans une base de données.

Deux champs seront en saisie obligatoire : nom et adresse e-mail.


Et dans une certaine mesure, nous chercherons à contrôler la validité
de l’adresse e-mail saisie.

Pour finir, notre formulaire devra renvoyer un message au client afin


de l’inviter à modifier sa saisie si cette dernière est invalide, ou de
l’informer que sa saisie a été prise en compte dans le cas contraire.

73
Création et gestion d’une
base de données MySql à
travers PHPMyAdmin

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
74
Plan

 Installation de l'interface phpMyAdmin

 Les types de données MySQL

75
Accès à l'interface phpMyAdmin
• Cliquer avec le bouton droit sur l’icône de Easy-PHP dans la
barre des taches et choisir Administration.

76
Accès à l'interface phpMyAdmin

Cliquer sur
PHPMyAdmin

77
Accès à l'interface phpMyAdmin

78
Les types de données MySQL

Type Description
TINYINT Très petit entier. En signé de -128 à 127, en non
signé de 0 à 255.
SMALLINT Petit entier. En signé de -32768 à 32767, en non
signé de 0 à 65535.
MEDIUMINT Entier de taille moyenne. En signé de -8388608 à
8388607, en non signé de 0 à 16777215.
INT Entier de taille normale. En signé de -2147483648 à
2147483647, en non signé de 0 à 4294967295.
BIGINT Entier de grande taille. En signé de
-9223372036854775808 à 9223372036854775807,
en non signé de 0 à 18446744073709551615.

79
Les types de données MySQL

Type Description
FLOAT Nombre à virgule flottante. Toujours signé de
-3.402823466E+38 à -1.175494351E-38.
DOUBLE Grand nombre à virgule flottante. Toujours signé de
-1.7976931348623157E+308 à 2.2250738585072014E-
308.
REAL Idem "DOUBLE".

DECIMAL Nombre à virgule flottante. Les nombres sont stockés dans


la variable sous forme de chaîne de caractères.Toujours
signé de -1.7976931348623157E+308 à
2.2250738585072014E-308.
NUMERIC Idem "DECIMAL".

80
Les fonctions PHP
d’interfaçage avec MySql

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
81
Plan

 Connexion au serveur des données


 Sélection de la base
 Exécution d’une requête SQL
 Exploitation des requêtes

82
Connexion au serveur des données

int mysql_connect (string hostname, string username, string password)

Exemple :
<?
if( mysql_connect("localhost" , “root" , "") > 0 )
{ echo " Connexion réussie ! "; }
else
{ echo " Connexion impossible ! "; }
?>

83
Sélection de la base

int mysql_select_db (string database_name, int link_identifier)

Exemple :
<?
if( mysql_select_db( "ma_base ") == True )
{ echo " Sélection de la base réussie "; }
else
{ echo" Sélection de la base impossible"; }
?>

84
Exécution d’une requête SQL
int mysql_query (string query, int link_identifier)

Contrairement aux autres fonctions (connexion et sélection), La valeur


de retour est très importante, elle est utilisée pour retrouver les données
rapatriées par une requête de sélection.

Exemple :
<?
$requete = "SELECT * FROM membres WHERE nom = 'ali' ";
$resultat = mysql_query( $requete );
?>

85
Exécution d’une requête SQL
int mysql_db_query (string database, string query, int link_identifier)

La différence par rapport à mysql_query(), c’est qu’on peut


sélectionner la base des données en même temps que l’exécution de
la requête.

Exemple :

<?
$req= "SELECT * from employee";
$result = mysql_db_query("database1", $req, $linkId);
?>

86
Exploitation des requêtes
Requête de sélection :
array mysql_fetch_row (int result)

Extrait de l’identificateur de résultat (result) la prochaine ligne


sous la forme d’un tableau énuméré ou FALSE s’il ne reste plus de
ligne.

Exemple :
<?
while($enregistrement = mysql_fetch_row($result))
{
echo $enregistrement[0] ; //Afficher le champ prénom
echo $enregistrement[1] ; //Afficher le champ date
echo $enregistrement[2] ;
echo <br>;
}
87
?>
Exploitation des requêtes
array mysql_fetch_array (int result, int result_type )

Extrait la ligne sous forme d’un tableau associatif.

Le paramètre result_type est facultatif.Il peut prendre les valeurs


suivantes : MYSQL_NUM, MYSQL_ASSOC ou MYSQL_BOTH.

Exemple :
<?
While($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["prenom"] ; //Affiche le champ –prenom-
echo $enregistrement["nom"] ; //Affiche le champ –nom-
echo $enregistrement["date"] ; //Affiche le champ –date-
echo « <br> »;
}
?>
88
Exploitation des requêtes
object mysql_fetch_object (int result, int result_typ )

Retourne un objet (structure) correspondant à la ligne extraite de


l’identificateur de résultat. L’argument optionnel result_typ est une
constante qui peut prendre les valeurs suivantes : MYSQL_ASSOC,
MYSQL_NUM, et MYSQL_BOTH.

Exemple :
<?
$enregistrement = mysql_fetch_object($result);
echo $enregistrement->prenom ; //Affiche le champ –prenom-
echo $enregistrement->nom; //Affiche le champ –nom-
echo $enregistrement->date ; //Affiche le champ –date-
?>

89
Exploitation des requêtes
int mysql_num_rows (int result)

Retourne le nombre d’enregistrements qui ont été retournés par la


sélection.

Exemple :
<?
$requete = "SELECT * FROM membres" ;
$result = mysql_query($requete);
echo "il y a" .mysql_num_rows($result) ." membre(s)";

while($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["nom"]. " " . $enregistrement["prenom"] ;
}
?> 90
Exploitation des requêtes

int mysql_insert_id (int link_identifier )

Retourne le dernier identifiant généré par un champ de type


AUTO_INCREMENTED.

Exemple :
Suite à une requête d’insertion, on veut afficher le numéro auto
incrémenté :
<?
echo "Votre numéro d’identifiant est : " .mysql_insert_id() ;
?>

91
Exploitation des requêtes

int mysql_affected_rows (int link_identifier )

Cette fonction permet de fixer le nombre de lignes insérées, mises


à jour ou supprimées par la précédente requête SQL (INSERT,
DELETE, REPLACE ou UPDATE) envoyée au serveur.

Exemple :
Suite à une commande "UPDATE", on voudrait savoir combien de
lignes ont été modifiées :

<?
echo mysql_affected_rows() ." enregistrement(s) modifiés";
?>

92
Les fonctions PHP pour la
gestion des données dans
une base MySql

Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
93
Plan

 Récupération de données
 Insertion de données
 Modification de données

94
Récupération de données

Requête de sélection :
array mysql_fetch_row (int result)
Extrait de l’identificateur de résultat (result) la prochaine ligne
sous la forme d’un tableau énuméré ou FALSE s’il ne reste plus de
ligne.

Exemple :
<?
while($enregistrement = mysql_fetch_row($result))
{
echo $enregistrement[0] ; //Afficher le champ prénom
echo $enregistrement[1] ; //Afficher le champ date
echo $enregistrement[2] ;
echo <br>;
}
?> 95
Récupération de données
array mysql_fetch_array (int result, int result_type )

Extrait la ligne sous forme d’un tableau associatif.

Le paramètre result_type est facultatif.Il peut prendre les valeurs


suivantes : MYSQL_NUM, MYSQL_ASSOC ou MYSQL_BOTH.

Exemple :
<?
While($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["prenom"] ; //Affiche le champ –prenom-
echo $enregistrement["nom"] ; //Affiche le champ –nom-
echo $enregistrement["date"] ; //Affiche le champ –date-
echo « <br> »;
}
?> 96
Récupération de données
object mysql_fetch_object (int result, int result_typ )

Retourne un objet (structure) correspondant à la ligne extraite de


l’identificateur de résultat. L’argument optionnel result_typ est une
constante qui peut prendre les valeurs suivantes : MYSQL_ASSOC,
MYSQL_NUM, et MYSQL_BOTH.

Exemple :

<?
$enregistrement = mysql_fetch_object($result);
echo $enregistrement->prenom ; //Affiche le champ –prenom-
echo $enregistrement->nom; //Affiche le champ –nom-
echo $enregistrement->date ; //Affiche le champ –date-
?>

97
Récupération de données

int mysql_num_rows (int result)

Retourne le nombre d’enregistrements qui ont été retournés par


la sélection.

Exemple :
<?
$requete = "SELECT * FROM membres" ;
$result = mysql_query($requete);
echo "il y a" .mysql_num_rows($result) ." membre(s)";
while($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["nom"]. " " . $enregistrement["prenom"] ;
}
?>
98
Insertion de données

int mysql_insert_id (int link_identifier )

Retourne le dernier identifiant généré par un champs de type


AUTO_INCREMENTED.

Exemple :
Suite à une requête d’insertion, on veut afficher le numéro auto
incrémenté :
<?
echo "Votre numéro d’identifiant est : " .mysql_insert_id() ;
?>

99
Modification de données

int mysql_affected_rows (int link_identifier )

Cette fonction permet de fixer le nombre de lignes insérées, mises


à jour ou supprimées par la précédente requête SQL (INSERT,
DELETE, REPLACE ou UPDATE) envoyée au serveur.

Exemple :
Suite à une commande "UPDATE", on voudrait savoir combien de lignes
ont été modifiées :
<?
echo mysql_affected_rows() ." enregistrement(s) modifiés";
?>

100