0% ont trouvé ce document utile (0 vote)
293 vues117 pages

PHP FST Beni Mellal

Le document décrit les défauts du langage HTML et introduit les langages de script côté serveur comme PHP. Il explique les concepts de base des variables, types de données et opérateurs en PHP.

Transféré par

saad c
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
293 vues117 pages

PHP FST Beni Mellal

Le document décrit les défauts du langage HTML et introduit les langages de script côté serveur comme PHP. Il explique les concepts de base des variables, types de données et opérateurs en PHP.

Transféré par

saad c
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 117

Introduction

Les défauts du langage HTML


(1/2)
 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.


Introduction
Les défauts du langage HTML
(2/2)
Pages web statiques : fonctionnement
 Leurs contenus ne changent ni en fonction du demandeur ni en fonction
d’autres paramètres éventuellement inclus dans la requête adressée au
serveur. Toujours le même résultat.
 Rôle du serveur : localiser le fichier correspondant au document demandé e
répond au navigateur en lui envoyant le contenu de ce fichier

Pages web statiques : limites


 Besoin de réponses spécifiques : passage de pages statiques à pages
dynamiques

2
Introduction

Application Client-Serveur statique

Navigateur
Demande de chargement
de la page index.html

Envoi du contenu de index.html

Client 3
Introduction
Des sites de plus en plus riches en informations:

 Nécessité croissante d’améliorer le contenu de


sites.
 Mises à jour manuelles trop complexes

Pourquoi ne pas automatiser les mises à jour ?

4
Introduction
Les langages de script-serveur : Définition

 Un langage de script -serveur est :

 Un programme stocké sur un serveur et exécuté par celui-ci,

 Il passe en revue les lignes d’un fichier source pour en modifier


une partie du contenu, avant de renvoyer à l’appelant ( un
navigateur par exemple) le résultat du traitement.

 La tâche d’interprétation des ordres à exécuter est déléguée à un


composant, souvent appelé moteur,

 installé sur le serveur,

5
Introduction
Application Client-Serveur Dynamique
requête

Client internet Serveur

réponse

appel de la page

Base de extraction Script


Document
données de données PHP exécution
Html
MySQL

6
Introduction
Les langages de création de page web dynamiques côté serveur

PHP

 Connaît un succès toujours croissant sur le Web et se positionne comme


un rival important pour ASP

 Combiné avec le serveur Web Apache et la base de données MySQL,


PHP offre une solution particulièrement robuste, stable et efficace

 Gratuité : Tous les logiciels sont issus du monde des logiciels libres
(Open Source).

7
Un peu d’histoire
Il a été créé en 1994 par Rasmus Lerdorf pour les besoins des pages web

personnelles (livre d’or, compteurs, etc.). A l’époque, PHP signifiait Personnal

Home Page.

C’est un langage incrusté au HTML et interprété (PHP3) ou compilé (PHP4) côté

serveur. Il dérive du C et du Perl dont il reprend la syntaxe. Il est extensible grâce à

de nombreux modules et son code source est ouvert. Comme il supporte tous les

standards du web et qu’il est gratuit, il s’est rapidement répandu sur la toile.

En 1997, PHP devient un projet collectif et son interpréteur est réécrit par Zeev

Suraski et Andi Gutmans pour donner la version 3,4,5 qui s’appelles désormais

PHP : Hypertext Preprocessor.

8
PHP (Hypertext Processor)
 Langage de script côté serveur
Supporté par le Serveur Web Appache (le plus répandu)
connectivité avec un grand nombre de bases de données (en
particulier MySql : Gratuit et Performant)
 Conçu pour le web
 Proche du langage C
 Portabilité du script : Multi plates-formes (Unix, Windows, …)
Intégration directe dans le code HTML (sur la même page)
Facilité de programmation
Nombreuses sources d'informations et d'aide (tutoriel, froums, …
9
PHP
PHP peut et doit être utilisé partout où il complète et simplifie
la production de pages HTML.

 En association avec des formuliares


 En gérant les transferts de fichier
 En simplifiant la programmation de code HTML

10
Intégration d’un script dans une page
Principe:
 Les scripts PHP sont généralement intégrés dans le code d’un document
HTML

Les pages web sont au format html. Les pages web dynamiques générées
avec PHP4 sont au format php. Le code source php est directement insérer
dans le fichier html grâce au conteneur de la norme XML :

<?php … ?>

Exemple:
<html>
<body>
<?php
echo ’’Bonjour’’;
?>
11
</body>
Exemple de script
Exemple de script :

<html>
<body>
<h1>Mon premier script</h1>
<?php echo ‘’Bonjour\n’’; ?>
</body>
</html>

Résultat affiché par le navigateur :

12
Introduction
 Typologie

- Toute instruction se termine par un point-virgule

- Sensible à la casse Sauf par rapport aux fonctions

 Les commentaires

- /* Voici un commentaire! */

- // un commentaire sur une ligne

13
Introduction
 Envoi du code HTML par PHP

◦ La fonction echo : echo Expression;


 echo "Chaine de caracteres";
 echo (1+2)*87;

◦ La fonction print : print(expression);


 print("Chaine de caracteres");
 print ((1+2)*87);

◦ La fonction printf : printf (chaîne formatée);


 printf ("Le périmètre du cercle est %d",$Perimetre);

14
Variables, types et opérateurs

15
Les Variables (1)
 Le typage des variables est implicite en php. Il n’est donc pas nécessaire de
déclarer leur type au préalable ni même de les initialiser avant leur utilisation.

 Les identificateurs de variable sont précédés du symbole « $ » (dollars) et ne


doivent pas contenir d’espace ou de caractères spéciaux.
 Exemple : $toto.

 Les variables peuvent être de type entier (integer), réel (double), chaîne de
caractères (string), tableau (array), objet (object), booléen (boolean).

 Il est possible de convertir une variable en un type primitif grâce au cast


(comme en C).
 Exemple :
$str = ’’12’’; // $str vaut la chaîne ‘’12’’
$nbr = (int)$str; // $nbr vaut le nombre 12 16
Variables (2)
 Principe
 Pas besoin d’affecter un type à une variable avant de
l’utiliser

 La même variable peut changer de type en cours de script

 Les variables issues de l’envoi des données d’un formulaire sont


type string

Les différents types de données


 Les entiers : le type Integer
 Les flottants : le type Double
 Les tableaux : le type array
 Les chaînes de caractères : le type string
 Les objets
17
Les Variables (3)

 La portée d’une variable est limitée au bloc dans lequel


elle a été crée. Une variable locale à une fonction n’est
pas connue dans le reste du programme. Tout comme
une variable du programme n’est pas connue dans une
fonction. Une variable créée dans un bloc n’est pas
connue dans les autres blocs, mêmes supérieurs.

 Si la variable est déclarée tout au début du script, en


dehors et avant toute fonction, elle est toujours globale.

18
Variables (4)
 des variables
Variable locale
- Visible uniquement à l’intérieur d’un contexte d’utilisation
Variable globale
- Visible dans tout le script
- Utilisation de l’instruction global dans des contextes locales

<? $ecole= ‘’Atelier PHP" // est connue de toutes les fonctions


function signer()
{
global $ecole; // $ecole est la variable globale précédente
$titre= "Participant ";
$titre = $titre . $ecole; // Participant Atelier PHP
}
?>
19
Variables (6)
Les références
On peut à la manière des pointeurs en C faire référence à une variable grâce
à l’opérateur & (ET commercial).

Exemple 1 :
$V1 = 100; // la variable $V1 est initialisée à la valeur 100
$foobar = &$V1; // la variable $foobar fait référence à $V1
$V1++; // on change la valeur de $V1
echo $foobar; // qui est répercutée sur $foobar qui vaut alors 101
Exemple 2 :
function change($var) {
$var++; // la fonction incrémente en local l’argument
}
$nbr = 1; // la variable $nbr est initialisée à 1
change(&$nbr); // passage de la variable par référence
echo $nbr; // sa valeur a donc été modifiée 20
Variables (7)
 Quelques fonctions :

 empty($var) : renvoie vrai si la variable est vide


 isset($var) : renvoie vrai si la variable existe
 unset($var) : détruit une variable
 gettype($var) : retourne le type de la variable
 settype($var, ’’type’’) : convertit la variable en type
type (cast)
 is_long(), is_double(), is_string(), is_array(),
is_object(), is_bool(), is_float(), is_numeric(),
is_integer(), is_int()…
21
Variables (8)
Exemple
 Pour vérifier si une variable est vide, on utilise la fonction empty() qu
renvoie true si elle contient une information et false sinon.

$variable = "a";

if(empty($variable))
echo "vide";
else echo "non vide";

 La fonction gettype() permet de recupérer le type de données d'une


variable. On peut assigner les types suivants :

if(gettype($variable) == "integer")

La fonction settype() permet de définir explicitement le type d'une


variable.

$variable = 2.5;
settype($variable, "integer");

La variable $variable renverra maintenant 2 et non 2.5. 22


Variables (9)
Transtypage explicite : le cast
(int), (integer) ; (real), (double), (float); (string); (array); (object)

$var =12.5
$var =(int) $var;  $var=12

 Détermination du type de données


Gettype(),
Is_long(), Is_double(),
Is_string(), Is_array(), Is_
object(), Is_bool()

23
Les constantes
L’utilisateur peut définir des constantes dont la valeur est fixée une
fois pour toute. Les constantes ne portent pas le symbole $ (dollars)
en début d’identificateur et ne sont pas modifiables.

define(‘’var’’,valeur) : définit la constante var (sans $) de valeur


valeur

Exemple 1 :
define("auteur’’,’’Foobar’’);
echo auteur; // affiche ‘Foobar’

Exemple 2 :
define(‘’Mon_Annee’’,1980);
echo Mon_Annee; // affiche 1980
Contrairement aux variables, les identificateurs de constantes (et
aussi ceux de fonction) ne sont pas sensibles à la casse. 24
Les opérateurs arithmétiques

$a + $b Somme

$a - $b Différence

$a * $b Multiplication

$a / $b Division

$a % $b Modulo (Reste de la division entière)

25
Les opérateurs d’incrémentation et de
décrémentation

Retourne la valeur de $a puis augmente la valeur de


$a++ $a de 1
Augmente la valeur de $a de 1 puis retourne la
++$a nouvelle valeur de $a
Retourne la valeur de $a puis diminue la valeur de $a
$a-- de 1
Diminue la valeur de $a de 1 puis retourne la nouvelle
--$a valeur de $a

26
Les opérateurs de comparaison
$a == $b Vrai si égalité entre les valeurs de $a et $b

Vrai si différence entre les valeurs de $a et


$a != $b
$b
$a < $b Vrai si $a inférieur à $b

$a > $b Vrai si $a supérieur à $b

$a <= $b Vrai si $a inférieur ou égal à $b

$a >= $b Vrai si $a supérieur ou égal à $b

$a === $b Vrai si $a et $b identiques (valeur et type)

$a !== $b Vrai si $a et $b différents (valeur ou type)


27
Les opérateurs logiques

Vrai si [Expr1] et [Expr2] sont


[Expr1] and [Expr2]
vraies

[Expr1] && [Expr2] idem


Vrai si [Expr1] ou [Expr2] sont
[Expr1] or [Expr2]
vraies

[Expr1] || [Expr2] idem


Vrai si [Expr1] ou [Expr2] sont
[Expr1] xor [Expr2] vraies
mais pas les deux

! [Expr1] Vrai si [Expr1] est non vraie

28
Opérateurs de chaîne
PHP supporte deux opérateurs de chaine:
L’opérateur de concaténation ‘’.’’ qui concatène deux
expressions pour former une nouvelle chaine .
Exemple:
$var1=‘’journa’’;
$var2=‘’liste’’;
$concat=$var1 . $var2;
Echo $concat // ‘’journaliste’’

L’opérateur d’affectation concaténation ‘’.=’’

Exemple:
$var1=‘’journa’’;
$var2=‘’liste’’;
$var1 .= $var2; // ‘’journaliste’’
29
Structures de contrôle
Structures conditionnelles (même syntaxe qu’en langage C) :

Les programmes doivent être capables de prendre des décisions.


Pour y parvenir, les développeurs utilisent ce qu'on appelle
des structures de contrôle. Dan ce chapitre on traitera deux
notions :

Les conditions : elles permettent d'écrire dans le programme


des règles comme « Si ceci arrive, alors fais cela » .

les structures itératives : elles permettent de répéter plusieurs


fois une série d'instructions.

30
Les structures conditionnelles (1)
La structure de base if…else

if( ... ) {

} elseif(… ) {

} else {

}

31
Les structures conditionnelles (2)
Exemple1:

if ($a > $b) {


echo "a est plus grand que b";
}
else{
echo "a est plus petit que b";
}
Exemple2:
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
32
Les structures conditionnelles (3)
La structure switch
L’instruction switch équivaut à une série d’instructions
if..elseif..elseif....else ; Elle est utilisée pour comparer la même
variable (ou expression) avec un grand nombre de valeurs
différentes et d’exécuter différentes parties de code suivant la
valeur à laquelle elle est égale.

switch( … ) {
case … : { … } break

case … : { … } break

default : { … }

] 33
Les structures conditionnelles (4)

Exemple1:

switch ($i) {
case 0:
echo "i égal 0";
break;
case 1:
echo "i égal 1";
break;
case 2:
echo "i égal 2";
break;
}
34
Les structures itératives (1)

Les structures itératives (boucles) constituent un moyen


d’exécuter un bloc de code un nombre de fois donné, où
jusqu’à ce qu’une condition particulière soit satisfaite.

PhP possède deux types de boucles :

Une boucle While : Teste une condition avant ou après


chaque itération et ne parcourt de nouveau la boucle que si la
condition est vérifiée.

Une boucle for : Le nombre d’itérations est fixé une fois


pour toutes, avant l’exécution de la première boucle.

35
Les structures itératives (2)
La boucle while

while (condition)
{
//instructions
}

36
Les structures itératives (3)
La boucle while

Exemple :
$i = 1;
while ($i <= 10) {
echo $i;
$i++ ;
}

37
Les structures itératives (4)
La boucle do…while

do
{
//instructions
}
while (condition)

NB::Les instructions do..while sont similaires aux instructions while, si ce


n’est que la condition est vérifiée à la fin de chaque itération, et non au
début.

38
Les structures itératives (5)
La boucle for

La boucle "for" permet d'effectuer un groupe d'instructions


un nombre déterminé de fois. Elle comprend trois
paramètres qui sont habituellement des instructions :

for (expr1; expr2; expr3) {


instructions
}

39
Les structures itératives (6)
La boucle for

Exemple :
for ($i = 1; $i <= 10; $i++) {
echo $i;
}

40
Les structures itératives (7)
L’instruction break permet de quitter prématurément une boucle.
Exemple :
while($nbr = $tab[$i++]) {
echo $nbr.’’<br />’’;
if($nbr == $stop)
break;
}

L’instruction continue permet d’éluder les instructions suivantes de l’itération


courante de la boucle pour passer à la suivante.
Exemple :
for($i=1; $i<=10; $i++) {
if($tab[$i] == $val)
continue;
echo $tab[$i];
} 41
Tableaux (I)
 un tableau est un conteneur employé pour stocker plusieurs
valeurs à la fois.

 Dans le langage PHP, un tableau peut comprendre des


éléments de différents types de données.

En PHP, deux types de tableaux sont à utiliser :

 Les tableaux à indice de type entier (numérotés).

 Les tableaux associatifs : des tableaux utilisant des


chaînes de caractères au lieu des simples entiers pour
définir les indices d'un tableau. 42
Tableaux (2):Tableaux à indices
 Une variable tableau est de type array. Un tableau accepte des éléments
de tout type. Les éléments d’un tableau peuvent être de types différents et
sont séparés d’une virgule.

 Un tableau peut être initialisé avec la syntaxe array.


Exemple :
$tab_colors = array(‘’rouge’’, ‘‘jaune’’, ‘’bleu’’, ‘‘blanc’’);
$tab = array(‘’foobar’’, 2002, 20.5, $name);

 Mais il peut aussi être initialisé au fur et à mesure.


Exemples :
$prenoms[ ] = ‘’Mohamed’’; $villes[0] = ‘’Rabat’’;
$prenoms[ ] = ‘’Hamid’’; $villes[1] = ‘’Alger’’;
$prenoms[ ] = ‘’Fatima’’; $villes[2] = ‘’Tunis’’;

 L’appel d’un élément du tableau se fait à partir de son indice (dont


l’origine est zéro comme en C).
43

Tableaux (3):Tableaux à indices
Parcours d’un tableau.
$tab = array("Hassan", "Jamal", "Mounir");

Exemple 1 :
$i=0;
while($i < count($tab)) { // count() retourne le nombre d’éléments
echo $tab[$i]
Echo ‘’<br>’’;
$i++;
}

Exemple 2 :
foreach($tab as $elem) {
echo $elem.’’<BR>’’;
} La variable $elem prend pour valeurs successives tous les éléments du
tableau $tab.
44
Tableaux (4): Tableaux à indices
Parcours d’un tableau: (suite).

< ?php

$prenoms = array (‘’Karim‘’, ‘’Nawal‘’, ‘’Morad‘’, ‘’fatima‘’,


‘’Najwa‘’);

for ($numero = 0; $numero < 5; $numero++)

{
echo $prenoms[$numero] . ‘’<br />‘’;

}
?>
45
Tableaux (5): Tableaux à indices
Quelques fonctions:
 count($tab), sizeof : retournent le nombre d’éléments du tableau
 in_array($var,$tab) : dit si la valeur de $var existe dans le tableau $tab
 list($var1,$var2…) : transforme une liste de variables en tableau
 range($i,$j) : retourne un tableau contenant un intervalle de valeurs
 shuffle($tab) : mélange les éléments d’un tableau
 sort($tab) : trie alphanumérique les éléments du tableau
 rsort($tab) : trie alphanumérique inverse les éléments du tableau
 implode($str,$tab): retournent une chaîne de caractères contenant les
éléments du tableau $tab joints par la chaîne de jointure $str
 explode($delim,$str) : retourne un tableau dont les éléments résultent du
hachage de la chaîne $str par le délimiteur $delim
 array_merge($tab1,$tab2,$tab3…) : concatène les tableaux passés en
arguments
 array_rand($tab) : retourne un élément du tableau au hasard
46
Tableaux (6): Tableaux associatifs
Un tableau associatif est appelé aussi dictionnaire ou hashtable. On associe à
chacun de ses éléments une clé dont la valeur est de type chaîne de
caractères.

L’initialisation d’un tableau associatif est similaire à celle d’un tableau normal.

Exemp le 1 :
$personne = array(‘’Nom’’ => ‘’César’’, ‘’Prénom’’ => ‘’Jules’’);

Exemple 2 :
$personne[‘’Nom’’] = ‘’César’’;
personne[‘’Prénom’’] = ‘’Jules’’;

Ici à la clé ‘’Nom’’ est associée la valeur ‘’César’’.


47
Tableaux (7): Tableaux associatifs
Parcours d’un tableau associatif.
$personne = array(‘’Nom’’ => ‘’César’’, ‘’Prénom’’ => ‘’Jules’’) ;

Exemple 1 :
foreach($personne as $elem) {
echo $elem
}
 Ici on accède directement aux éléments du tableau sans passer par les clés.

Exemple 2 :
foreach($personne as $key => $elem) {
echo ‘’$key : $elem’’;
}
Ici on accède simultanément aux clés et aux éléments.
48
Tableaux (8): Tableaux associatifs
Quelques fonctions :
array_count_values($tab) : retourne un tableau contenant les valeurs du
tableau $tab comme clés et leurs fréquence comme valeur (utile pour
évaluer les redondances)
array_keys($tab) : retourne un tableau contenant les clés du tableau
associatif $tab
array_values($tab) : retourne un tableau contenant les valeurs du tableau
associatif $tab
array_search($val,$tab) : retourne la clé associée à la valeur $val

L’élément d’un tableau peut être un autre tableau.

Les tableaux associatifs permettent de préserver une structure de données.

49
Tableaux (9): Tableaux associatifs
Quelques fonctions alternatives pour le parcours de tableaux (normaux ou
associatifs) :
reset($tab) : place le pointeur sur le premier élément
current($tab) : retourne la valeur de l’élément courant
next($tab) : place le pointeur sur l’élément suivant
prev($tab) : place le pointeur sur l’élément précédant
each($tab) : retourne la paire clé/valeur courante et avance le pointeur

Exemple :
$colors = array(‘’red’’, ’’green’’, ’’blue’’);
$nbr = count($colors);
reset($colors);
for($i=1; $i<=$nbr; $i++) {
echo current($colors).’’<br />’’;
next($colors); 50
Tableaux (10): Tableaux associatifs
Les éléments d'un tableau peuvent être à leur tour des tableaux.
Ces tableaux dits multidimensionnels peuvent être comparés à des matr
Exemple :
$produit = array ( array ( "Ord", "Ordinateur",6700),
array ( "Imp", "Imprimante", 1600),
array ( ""Vid", "Video", 2200) );

Pour afficher le contenu de ce tableau :


For ($i=0;$i<3;$i++)
{
for($j=0;$j<3;$j++)
{
echo "|".$produit[$i][$j]."|";
}
echo "<br>"; 51
Tri d’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.

La fonction sort() :
Effectue un tri croissant sur les valeurs des éléments d’un tableau selon un
critère alphanumérique.

Pour les tableaux associatifs les clés seront perdus et remplacées par un
indices créé après le tri commençant à 0.

<?php
$fruits = array("pomme", "orange", "banan", "avocat");
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
?>
52
Tri d’un tableau

On aura comme resultat:


fruits[0] = avocat
fruits[1] = banana
fruits[2] = orange
fruits[3] = pomme

NB: La function rsort() effectue la même action mais en ordre


inverse.

53
Tri d’un tableau
La fonction asort() effectue un tri croissant mais en préservant les clés pour
les tableaux associatifs.

<?php
$fruits = array("d" => "pomme", "a" => "orange", "b" => "banan", "c" => "a
vocat");
asort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>
On aura comme résultat:
c = avocat
b = banan
a = orange
d = pomme

NB:La fonction arsort() effectue la même action mais en ordre


54
inverse.
Tri d’un tableau

La fonction ksort() effectue un tri des tableau selon les clés d’une manière
croissante. Et préserve les associations clé/valeur :

Dans ce cas le résultat sera comme suit :


a = orange
b = banana
c = avocat
d = pomme

NB:La fonction krsort() effectue la même action mais en ordre


inverse.

55
Manipulation de chaîne de caractères
les principales fonctions de manipulations de chaine de
caractères sont :
 Substr() : permet d’accéder à une sous chaine d’une
chaine, en spécifiant les points de début et de longueur de
sous chaine.

string substr (string source, int début, int [taille])


Exemple:
Substr(‘’HELLO ‘’,1,2); // renvoie ‘’EL’’
Substr(‘’HELLO ‘’,1); // renvoie ‘’ELLO’’
Substr(‘’HELLO ‘’,-2); // renvoie ‘’LO’’
Substr(‘’HELLO ‘’,-3,2); // renvoie ‘’LL’’

56
Manipulation de chaîne de caractères
Strlen (chaine) : retourne la taille de la chaine

int strlen ( string $string )


Exemple :
<?php
$str = 'bonjour';
echo strlen($str); // 7
$str = 'ab cd';
echo strlen($str); // 5
?>

57
Manipulation de chaîne de caractères

trim() : Cette fonction retire les espaces blancs de début et


de fin de chaîne, et retourne la chaîne nettoyée. Les espaces
blancs sont : "\n", "\r", "\t", "\0", et " " (espace).

string trim (string str)


Exemple :
echo(trim(″ chaîne exemple ″)) ; //imprime ‘chaîne
exemple’.

58
Manipulation de chaîne de caractères
str_replace() : Remplace toutes les occurrences de modèle
dans chaîne par remplacement string
str_replace(modèle, remplacement, chaîne)

Exemple :
<?
$chaine="la belle vie";
$chaine=str_replace("vie", "vue", $chaine);
echo $chaine;
?>
// Ce code imprime : ″la belle vue″

59
Manipulation de chaîne de caractères
implode():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.
string implode (string separator, array tableau)
Exemple :

<?php
$array = array('lastname', 'email', 'phone');
$res = implode("/", $array);

echo $res; // lastname/email/phone


?>
60
Manipulation de chaîne de caractères
explode():Retourne un tableau qui contient les éléments de
la chaîne string, séparés par séparation.
array explode (string separator, string string)

Exemple :
<?php
$chaine="Nom|Prenom|Adresse";
$champs=explode("|",$chaine);
$boucle=0;
while($boucle<sizeof($champs)){
echo$champs[$boucle];
$boucle++;
}
61
Fonctions (1)
 Comme tout langage de programmation, php permet
l’écriture de fonctions.

 Les fonctions regroupent un ensemble d'instructions


réutilisables, elles peuvent (mais pas obligatoire) accepter des
valeurs appelées arguments ou paramètres.

 S'il y'en a plusieurs, les paramètres sont séparés par des


virgules.

 Une fonction réalise une succession d'instructions et peut


renvoyer une et une seule valeur à préciser à l'aide du Return.

62
Fonctions (2)
Exemple :
function mafonction($V) {
$V += 15;
echo ‘’Salut !’’;
return ($V+10);
}

$nbr = MaFonction(15.1);

/* retourne 15.1+15+10=40.1, les majuscules n’ont pas


d’importance */

63
Fonctions (3)
 Les identificateurs de fonctions sont insensibles à la casse.

 On peut modifier la portée des variables locales à une


fonction:
global permet de travailler sur une variable de portée globale
au programme. Le tableau associatif $GLOBALS permet
d’accéder aux variables globales du script
($GLOBALS[‘’var’’] accède à la variable $var).

Exemple :
function change() {
global $var; // définit $var comme globale
$GLOBALS[‘’var’’] ++; // incrémente la variable globale $V
$var++; // cela sera répercuté dans le reste du
programme
} 64
Fonctions (4)

static permet de conserver la valeur d’une variable locale à


une fonction.

Exemple :
function change() {
static $var; // définit $var comme statique
$var++; // sa valeur sera conservée jusqu’au
prochain appel
}

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

65
Fonctions (6)
Forcer le passage de paramètre par référence (équivalent à user
de global):

Exemple :

function change(&$var) { // force le passage systématique par


référence
$var += 100; // incrémentation de +100
}
$V = 12; // $V vaut 12

change($V); // passage par valeur mais la fonction la prend en


référence

echo $V; // $V vaut 112 66


Fonctions (7)
Une fonction peut être définie après son appel (en PHP4 du fait de l
compilation avant exécution contrairement au PHP3 qui est interprété).

Exemple :
function une() { // définition de la fonction une
echo ‘’Binevenu…’’;
}

une(); // appel de la fonction une définie plus haut


deux(); // appel de la fonction deux pas encore définie

function deux() { // définition de la fonction deux


echo ‘’PHP!<br />’’;
}

Cet exemple affichera : Bienvenu…PHP!.


67
Fonctions (8)
Grâce à un petit astuce, il est possible de faire retourner plusieurs valeurs
d’une fonction. En retournant un tableau ayant pour éléments les variables
à retourner. Dans l’appel de la fonction, il faudra alors utiliser la procédure
list() qui prend en paramètre les variables à qui ont doit affecter les valeurs
retournées. On affecte à list() le retour de la fonction.

Exemple :
function trigo($nbr) {
return array(sin($nbr), cos($nbr), tan($nbr)); // retour d’un tableau
}
$r = 12;
list($a, $b, $c) = trigo($r); /* affectation aux variables $a,$b et $c des
éléments du tableau retourné par la fonction trigo */
echo ‘’sin($r)=$a, cos($r)=$b, tan($r)=$c’’; // affichage des variables

Cet exemple affichera ceci :


sin(12)=-0,5365729180, cos(12)=0,8438539587, tan(12)=-0,6358599286 68
Mathématiques
 Il existe une multitude de fonctions mathématiques.

 abs($x) : valeur absolue


 ceil($x) : arrondi supérieur
 floor($x) : arrondi inférieur
 pow($x,$y) : x exposant y
 round($x,$i) : arrondi de x à la ième décimale
 max($a, $b, $c …) : retourne l’argument de valeur maximum
 pi() : retourne la valeur de Pi

 Et aussi : cos, sin, tan, exp, log, min, pi, sqrt…

 Nombres aléatoires :
 rand($x,$y) : valeur aléatoire entre x et y
 srand() : initialisation du générateur aléatoire 69
Dates et heures (I)
Les fonctions de dates et heures sont incontournables sur Internet et
sont indispensables pour la conversion en français des dates fournies
par la base de données MySQL qui les code au format anglophone
(YYYY-DD-MM hh:mm:ss).
Quelques fonctions :

 date(‘’$format’’) : retourne une chaîne de caractères contenant la


date et/ou l’heure locale au format spécifié

 getdate() : retourne un tableau associatif contenant la date et l’heure

 checkdate($month, $day, $year) : vérifie la validité d’une date

 mktime ($hour, $minute, $second, $month,$day, $year) : retourne


le timestamp UNIX correspondant aux arguments fournis c’est-à-dire
le nombre de secondes entre le début de l'époque UNIX (1er Janvier
70
1970) et le temps spécifié
Dates et heures (2)
Exemple 1 :
echo date(''Y-m-d H:i:s'');
/* affiche la date au format MySQL : ‘2002-03-31 22:30:29’ */

Exemple 2 :

 $aujourdhui = getdate();
 $mois = $aujourdhui['mon'];
 $jour = $aujourdhui['mday'];
 $annee = $aujourdhui['year'];
 echo ''$jour-$mois-$annee''; // affiche ‘31/3/2002’

71
Dates et heures (3)
Les clés du tableau retourné par getdate :
 seconds : secondes
 minutes : minutes
 hours : heures
 mday : jour du mois
 wday : jour de la semaine, numérique
 mon : mois de l'année, numérique
 year : année, numérique
 yday : jour de l'année, numérique
 weekday : jour de la semaine, textuel complet en anglais
 month : mois, textuel complet en anglais

72
Dates et heures (4)
Les formats pour date :
 d Jour du mois sur deux chiffres [01..31] j Jour du mois sans les zéros initia
 l Jour de la semaine textuel en version longue et en anglais
 D Jour de la semaine textuel en trois lettres et en anglais
 w Jour de la semaine numérique [0..6] (0: dimanche)
 z Jour de l'année [0..365]
 m Mois de l'année sur deux chiffres [01..12] n Mois sans les zéros initiaux
 F Mois textuel en version longue et en anglais
 M Mois textuel en trois lettres
 Y Année sur 4 chiffres y Année sur 2 chiffres
 h Heure au format 12h [01..12] g Heure au format 12h sans les zéros initiau
 H Heure au format 24h [00..23] G Heure au format 24h sans les zéros initi
 i Minutes [00..59] s Secondes [00.59]
 a am ou pm A AM ou PM
 L Booléen pour savoir si l'année est bisextile (1) ou pas (0)
 S Suffixe ordinal anglais d'un nombre (ex: nd pour 2)
 t Nombre de jour dans le mois donné [28..31]
 U Secondes depuis une époque 73
Z Décalage horaire en secondes [-43200..43200]
Expression régulière en PHP

74
Expressions régulières ?
 Une expression régulière ou rationnelle est une
séquence de caractères qui constitue un modèle
de recherche.

 Décrire un texte ou l’identifier par le biais de


la description des symboles et composants.
Décrie les relations de ces symboles: succession
répétition, exist ence…

 Abrégé en littérature par : regex ou regexp


75
Expressions régulières ?
Une expression régulière va par exemple vous
permettre:

• Vérifier automatiquement si l'adresse e-mail entrée


par le visiteur a une forme valide (comme
"[email protected]")
• Modifier une date que vous avez au format
américain (05-08-1985) pour la mettre dans le bon
ordre en français (05/08/1985)
• date savoir si une chaîne est composée de 6
caractères numériques,
• de savoir si elle commence par un "a" tout en
finissant par un "w"
76
Début et la fin d'une chaîne

^ : qui désigne le début d'une chaîne.


$ : qui désigne la fin d'une chaîne.
 On souhaite savoir si la chaine commence par "D".
" ^D "

 On souhaite savoir si la chaine se termine par un "x"


" x$ "

 Quel est la signification de


" ^Dx$ «
 " abc " : chaine contenant la chaine " abc "

77
Les quantificateurs (1)
Les symboles *, + et ? Permettent de donner
er une notion de nombre.
* qui désigne "0 ou plusieurs occurrences".

+ qui désigne "1 ou plusieurs occurrences".

? qui désigne "0 ou une occurrence".

78
Exemples
 "abc+": chaîne qui contient "ab" suivie de un ou
plusieurs "c" ("abc", "abcc" ...).
 "abc*": chaîne qui contient "ab" suivie de zero ou
plusieurs "c" ("ab", "abc" ...)
 "abc?": chaîne qui contient "ab" suivie de zero ou un
"c" ("ab" ou "abc").
 "^abc+": chaîne commençant par "ab" suivie de un
ou plusieurs "c" ("abc", "abcc" ...)

79
Les quantificateurs (2)
Les accolades {x,y} permettent de donner des limites
numériques précises à la quantification.
{x} : la chaîne doit être répétée X fois.
"abc{2}"
{x,y} : la chaîne peut être répétée de X fois à Y fois.
"abc{2,4}"

{x,} : la chaîne doit être répétée au moins X fois:

"abc{2,}"

* {0,}
+ {1,}
? {0,1} 80
Exemples
"abc{2}": chaîne qui contient "ab" suivie de deux
"c" ("abcc").

"abc{2,}": chaîne qui contient "ab" suivie de deux


"c" ou plus ("abcc" etc..).

"abc{2,4}": chaîne qui contient "ab" suivie 2, 3 ou


4 "c" ("abcc" .. "abcccc")

81
Les séquences de caractères
Les séquences de caractères permettent de faire porter les
quantificateurs non pas sur un seul caractère mais sur plusieurs
caractères situés les uns à côté des autres.

Les parenthèses ( ) permettent de représenter une séquence de


caractères.

"a(bc)*": chaîne qui contient "a" suivie de zero "bc" ou plus

La barre verticale | se comporte en tant qu'opérateur OU

"un|le": chaîne qui contient "un" ou "le"


"(un|le) chien": chaîne qui contient "un chien" ou "le chien"
"(a|b)*": chaîne qui contient une suite de "a" ou de "b"
82
Autorisé & interdit

 Le symbole " . " (point) indique un caractère quelconque.


"^.{2}$": chaîne qui contient 2 caractères.

 Les crochets [ ] définissent une liste de caractères autorisés


interdits).
 Le signe - permet quand à lui de définir un intervalle.
[ a-z] [0-3] [a-z0-9] [a-z]*
 Le caractère ^ après le premier crochet indique quand à lui
interdiction.
"^[a-zA-Z]’’ : chaine qui commence par une lettre
"^[^a-zA-Z]’’ : chaine qui ne commence par une lettre
 Attention: ne pas confondre "^[]’’ et "[^]’’
83
Remarque
 Pour rechercher un caractère faisant partie des caractères
spéciaux, il suffit de le faire précéder d'un antislash.

 Ce n’est pas le cas lors de l’utilisation des crochets.

 "[\+?{}.]": chaîne qui contient un de ces six caractères.

 Pour représenter un ] il faut le mettre en premier (ou après


un ^ si c'est une interdiction).

 un - se met en premier ou en dernier.


"[]-]": chaîne qui contient le caractère "]" ou le caractère "-"
84
Intervalles prédéfinis
vérifier si une chaîne contient des caractères d'un certain type
(numérique, alphanumérique, ...) sans avoir à les énumérer.
Noms de l'intervalle Description

[:alnum:] Tout caractère alphanumérique; équivaut à a-zA-Z0-9

[:alpha:] Tout caractère alphabétique, équivaut à a-zA-Z

[:lower:] Toute lettre en minuscule

[:upper:] Toute lettre en majuscule


[:digit:] Tout caractère numérique [0-9]
[:space:] Caractère d'espacement
[:blank:] Espace ou tabulation
[:ctrl:] Tout caractère de contrôle
Tout caractère imprimable (hormis les caractères de
[:print:]
contrôle)
85
Fonctions de manipulation de Regexp
Int ereg (string $pattern, string $string [, array
&$regs])
 Recherche dans la chaine string les séquences de caractères qui
correspondent au masque pattern, en tenant compte de la casse.

 Pattern: expression rationnelle sensible à la casse.


 String: la chaine d’entrée.
 Regs: si au moins une séquence est trouvée et que la fonction
est appelée avec un troisième argument regs, les résultats seront
enregistrés dans reg (tableau).

86
Fonctions de manipulation de Regexp
Exemple 1:
<?php
$Pattern = " ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) "
$date = " 2016-09-3 "
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs))

{
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Format de date invalide : $date";
}
?> 87
Fonctions de manipulation de Regexp
Exemple 2:
<?php
$chaine = 'Un exemple de chaîne simple';
if(ereg('`exemple`', $chaine))
{
echo 'Vrai, la chaîne correspond au masque';
}
else
{
echo 'Faux, la chaîne ne correspond pas au masque';
}
?>
88
Fonctions de manipulation de Regexp

 Eregi(): semblable à ereg () sauf qu’elle est inensible à la


casse.
$string = ‘XYZ‘ ;
If (ereg(‘Z‘, $string))
{
echo '‘ $string contient un ‘z‘ ou un ‘Z‘'');
}

Remarque: ereg () eregi () sont obsolétes depuis


PHP5.3.0. utiliser la fonction preg_match().

89
Fonctions de manipulation de Regexp
Ereg_replace ()

string ereg_replace ( string $pattern , string $replacement,


string $string )

 Effectue une recherche par expression rationnelle dans la


chaine string en recherchant les occurrences de pattern, puis

les remplacés par la chaine remplacement.

90
Fonctions de manipulation de Regexp

Ereg_replace()
Exemple
$ch = '‘la 4° versionest 4 '‘
$ch2 = ereg_replace ('‘ [[:digit:]] '‘, '‘5'‘ , $ch);
Echo $ch2, '‘<br />'‘;
Echo ereg_replace ('‘est'‘, '‘ fut'‘, $ch), '‘<br />'‘;

Ereg_replace () est obsolète depuis PHP 5.3.0.


NB: utiliser preg_replace().

91
PHP et les formulaires

92
PHP et les formulaires(1)
Formulaire HTML

 Retourne des informations saisies par un utilisateur vers une


application serveur.

 La création d’un formulaire nécessite la connaissance de


quelques balises HTML indispensables :

Structure : un formulaire commence toujours par la balise


<form> et se termine par la balise </form>

93
PHP et les formulaires(2)
 Champ de saisie de text en ligne
<input type = "text" name ="nom_du_champ« value="chaîne">

 Boutons d’envoi et d’effacement :


<input type=" submit " value = "Envoyer">
<input type = "reset" name ="efface" value = "Effacer">

 Case à cocher et bouton radio :


<input type = "checkbox" name ="case1" value="valeur_case">
<input type = "radio" name ="radio1" value ="valeur_radio">
94
PHP et les formulaires(3)
 Liste de sélection avec options à choix unique :

<select name ="select" size="1">


<option value = "un"> choix1 </option>
<option value ="deux"> choix2 </option>
</select>

 Liste de sélection avec options à choix multiples :

<select name ="select" size = "1" multiple>


<option value = "un"> choix1 </option>
<option value = "deux"> choix2 </option>
</select> 95
PHP et les formulaires(4)
Méthodes d’envoi get et post:transmission selon une des
deux méthodes d'envoi GET ou POST.

 La méthode GET place les informations d'un formulaire


directement à la suite de l'adresse URL de la page appelée.
http://www.site.com/cible.php?champ=valeur&champ2=valeur
- inconvénients :
rendre visibles les données dans la barre d’adresse
du navigateur.

 La méthode POST regroupe les informations dans l'entête


d'une requête HTTP
 Assure une confidentialité efficace des données
96
PHP et les formulaires(5)
Récupération des paramètres en PHP

 PHP pour récupérer les informations soumises par


l’utilisateur via un formulaire HTML et les affecter à des
variables. Le nom de ces variables est identique aux noms
des éléments employés dans le formulaire HTML traité.

 Les tableaux associatifs $_GET et $_POST contiennent


toutes les variables envoyées par un formulaire

97
Validation du formulaire (6)
L’une des fonctionnalités les plus importantes de HP est la
validation des formulaires HTML.

 Validation de la valeur entrée dans une zone de texte de nom


Le code suivant vérifie le contenu d’une zone de texte:
<?php
if (empty($name)) { die("aucun nom ni soumis");}

elseif ((strlen($name)<3) || (strlen($name))>25))


{die("nom invalide");}

else {echo $name;}

?> 98
Validation du formulaire (7)
Validation d’une adresse de courrier électronique
<?php
if (empty($email)) {
die ("aucun email ni soumis");
}
elseif ((strlen($email)<3) || (strlen($email))>25)){
die ("email invalide ou longueur invalide");
}
elseif (!ereg("@", $email)) {die("email invalide ou @ n'existe
pas");
}
else {
echo $email;
99
}
Validation du formulaire (8)
Validation des mots de passe.
<?php
if ((empty($password) || empty($Cpassword()){
die("aucun password ni soumis");
}
elseif ((strlen($password<8) || (strlen($cpassword))>15)){
die("longuer du password incorrecte");
}
elseif{!(strlen($password) == strlen($cpassword))
die(" password incorrecte");
}
elseif{!($password === $cpassword)
die("password incorrecte");
}
else{ for ($i=0;$i<strlen($password);$i++)
echo "*"; 100
Exemple ilustratif

Une fois que le formulaire aura été envoyé, le relais est passé à
une autre fichier php : presentation.php
<?php
$nom = $_POST["nom"];
$prenom= $_POST["prenom"];
$age= $_POST["age"];
…………traitement des variables……………
……………………………………….. 101
Exemple illustratif
Après validation on aura un résultat sous forme

102
PHP et les formulaires(9)

 La plupart des éléments d'un formulaire n'acceptent


qu'une seule et unique valeur, laquelle est affectée à la
variable correspondante dans le script de traitement.

$Champ_Saisie  "Ceci est une chaîne de caractères.";

 Pour des cases à cocher et les listes à choix multiples,


plusieurs valeurs peuvent être sélectionnées entraînant
l'affectation d'un tableau de valeurs aux variables
correspondantes.

$Case[0]  "Case radio 1";


$Case[1]  "Case radio 3"; 103
PHP & MySQL

104
Présentation
 MySQL est une base de données implémentant le langage de
requête SQL un langage relationnel très connu. Cette partie
suppose connue les principes des bases de données
relationnelles.

 Il existe un outil libre et gratuit développé par la communauté


des programmeurs libres : phpMyAdmin qui permet
l’administration aisée des bases de données MySQL avec php.
Il est disponible sur:
http://sourceforge.net/projects/phpmyadmin/ et
http://www.phpmyadmin.net.

 Avec MySQL vous pouvez créer plusieurs bases de données


sur un serveur. Une base est composée de tables contenant des
enregistrements. 105
phpMyAdmin

106
Présentation

Pour interroger une base de données, il est impératif de maitriser


language SQL.
l'accès aux données se décompose en plusieurs étapes :

1)ouvrir la connexion sur le serveur MySQL


2)ouvrir une connexion sur la base de données
3)définir la requête à exécuter
4)exécuter la requête. On obtient les lignes du résultat dans un RcordSet
5)extraire les données de chaque ligne du résultat
6)traiter les données (calcul ou affichage par exemple)
7)fermer le RecordSet pour libérer la mémoire
8)fermer la connexion au serveur
107
Connexion (I)
pour se connecter à une base depuis php, il faut spécifier un nom de
serveur, un nom d’utilisateur, un mot de passe et un nom de base.

1) mysql_connect($server, $user, $password) :


permet de se connecter au serveur $server en tant qu’utilisateur $user
avec le mot de passe $password, retourne l’identifiant de connexion
(nombre positif) si la connexion s'est établie avec succès et FALSE (0)
sinon.
//connexion locale , login "root" et sans mot de passe
$ma_connexion=mysql_connect("localhost","root","");
if ($ma_connexion ==False) //connexion échouée
{
die("connexion impossible") //affiche le message puis
// arrête le scrypte
}
108
echo "connexion réussie"; // divers instructions
Connexion (II)
Une autre commande permettant la connexion à un serveur est
mysql_pconnect. Elle fonctionne de la même manière que
mysql_connect sauf que la connexion est persistante, il n’y a donc pas
besoin de rouvrir la connexion à chaque script qui travaille sur la même
base.

 Lors de la connexion, la fonction essaie de trouver une connexion


permanente déjà ouverte sur cet hôte avec le même nom
d'utilisateur et mot de passe. Si une telle connexion est trouvée,
son $id est retourné, sans ouvrir une nouvelle connexion.

 La connexion au serveur ne sera pas terminée avec la fin du


scrypte. Au lieur de cela, le lien sera conservé pour un prochain
accès.

 Les connexions sont automatiquement fermées au bout d’un


certain temps en cas d’absence de toute activité…
109
Connexion (III)
2) Une fois la connexion établie, il faut indiquer la base où se trouvent les
données à traiter avec mysql_select_db.

mysql_select_db($base[,$id]) :
permet de choisir la base $base. La fonction retourne (sous le nom $id) True
en cas de succès et False en cas d'échec. Toutes les reequêtes exécutées, par la
suite, seront faites avec la base de données active.
$connect_base=mysql_select_db("mabase",$ma_connexion);
if ($connect_base ==False) //si la base est inaccessible
{
die("base inaccessible") //affiche le message puis arrête le scrypte
}
echo "accès correct à la base"; // divers instructions

Rque : Les identifiants de connexion ne sont pas nécessaires si on ne se


connecte qu’à une seule base à la fois, ils permettent seulement de lever toute
ambiguïté en cas de connexions multiples.
110
Interrogation (I)

Pour envoyer une requête à une base de donnée, il existe la


fonction :
mysql_query($str).
Cette fonction qui prend pour paramètre une chaîne de
caractères qui contient la requête écrite en SQL et retourne un
identificateur de résultat ou FALSE si échec.

L'échec (la requête n'a pas pu s'exécuter sur le serveur) est


souvent lié à une erreur de syntaxe ou de droits insuffisants sur
la base .

Il est possible qu'une requête syntaxiquement correcte ne


contienne aucune ligne de résultat, elle retourne alors la valeur
True. 111
Interrogation(II)
Les requêtes les plus couramment utilisées sont :
SELECT (sélection).
CREATE (création d’une table).
INSERT (insertion).
UPDATE (mise à jour des données).
DELETE (suppression).
ALTER (modification d’une table), etc.

$ma_selection="select nom, adresse from users"


$resultat=mysql_query($ma_selection)
If ($resultat == False)
{
die("requête incorrecte : $ma_selection");
}
Echo "requête correcte"; 112
Interrogation(III)

Pour les commandes DELETE, INSERT, REPLACE ou


UPDATE la fonction mysql_affected_rows() permet de connaître
le nombre de lignes concernées.

Pour les requêtes SELECT, La fonction mysql_num_rows()


retourne le nombre d'enregistrements qui répondent à la requête.

$resultat = mysql_query("select nom, prenom from ma_table");


$nb=mysql_num_rows($resultat);
echo "il y a $nb enregistrements";

113
Extraction des données (I)
 Une fois la requête effectuée et l’identificateur de résultat
acquis, il ne reste plus qu’à extraire les données retournées par
le serveur.

 Php possède plusieurs fonctions qui permettent le retour du


résultats issus d'une requête.

 selon la position du champ dans la requête (indice)


 Selon le nom du champ dans la table
 Travailler tout autant sur les noms que les positions

114
Extraction des données (II)
mysql_fetch_row($result) : retourne Une ligne de résultat sous la forme
d’un tableau appelée RecordSet. Les éléments du tableau étant les valeurs
des attributs de la ligne. Retourne FALSE s’il n’y a plus aucune ligne.
Comme la fonctionne ne retourne qu'une seule ligne, il faudra boucler sur
le nombre d'enregistrements précédemment calculés.
Exemple 1 :
B1) while($ligne = mysql_fetch_row($resultat)) {
$id = $ligne[0];
$name = $ligne[1];
$address = $ligne[2];
echo ‘’$id - $name, $address <br />’’;
}
B2) For ($i=0; $i < mysql_num_rows($resultat); $i++) {
$ligne=mysql_fetch_row($resultat);
echo "$ligne[0] - $ligne[1] - $ligne[2] <br/>";
} 115
Extraction des données (III)
mysql_fetch_array($result) : retourne Une ligne d'enregistrements sous
forme de tableau associatif. Les clés étant les noms des attributs et les
valeurs associées leurs valeurs respectives.

Retourne FALSE s’il n’y a plus aucune ligne.

On accède alors aux valeurs des champs par leur noms et non par leur indice.

Exemple 2 :
while($ligne = mysql_fetch_array ($resultat)) {
$numero = $ligne["id’’];
$nom = $ligne["name’’];
$adresse = $ligne["address’’];
echo "$numero - $nom, $addresse <br />’’;
}

116
Fonctions additionnelles
Quelques fonctions supplémentaires très utiles :

mysql_free_result($result) :

efface de la mémoire du serveur les lignes de résultat de la requête


identifiées par $requet. Très utile pour améliorer les performances du
serveur en évitant la saturation de la mémoire lors de l'exécution du
scrypte.

mysql_close($ma_connexion) :

ferme la connexion MySql. Elle n'est pas obligatoire *, car les connexions
sont automatiquement fermées à la fin du scrypte.

mysql_num_fields($result) : retourne le nombre de champs du résultats.

mysql_list_fields($result) : liste les champs du résultat MySql.

D'autres fonctions sont encore disponible pour la gestion des données.

117

Vous aimerez peut-être aussi