100% ont trouvé ce document utile (1 vote)
107 vues186 pages

Cours Complet sur le PHP

Transféré par

momodouv
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
100% ont trouvé ce document utile (1 vote)
107 vues186 pages

Cours Complet sur le PHP

Transféré par

momodouv
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

Cours PHP

Licence 2 web (uadb)

Mr Koundoul
[Link]@[Link]

Année académique : 2017-2018 : [Link]@[Link] 1


Année académique : 2017-2018 : [Link]@[Link] 2
C’est quoi le PHP ?

PHP est un langage de script HTML exécuté du côté du serveur. Il veut dire « PHP :
Hypertext Preprocessor ». Sa syntaxe est largement inspirée du langage C, de Java
et de Perl, avec des améliorations spécifiques. Le but du langage est d'écrire
rapidement des pages HTML dynamiques.

Signifie d’abord Personal Home Pages puis Hypertext Pre Processor


PHP est un langage de programmation, il a été conçu pour aider à la création
d'applications web. Le langage peut être installé sur les principaux serveurs web du
marché, les plus répandus étant IIS et Apache.

Année académique : 2017-2018 : [Link]@[Link] 3


C’est quoi le PHP ?

PHP permet de générer des pages au format HTML à la demande (souvent appelé
"à la volée"). Ceci permet d'inclure dans ces pages de l'information issue de bases
de données et du système de fichiers (contenu de fichiers et de l'arborescence).

PHP sait également récupérer les informations envoyées par le navigateur


(méthodes GET et POST), informations qui peuvent simplement être utilisées par
le script PHP ou être stockées pour une utilisation ultérieure.

Année académique : 2017-2018 : [Link]@[Link] 4


Présentation de l’architecture
De nombreuses applications fonctionnent selon l’architecture client/serveur qui
dispose de deux entités reliées par un réseau (intranet, internet, …) . Chaque entité
englobe l’aspect hardware (machine) et software (logiciel).
Une machine cliente exécute une application cliente qui interagit avec une
application serveur qui tourne sur une machine serveur et qui lui fournit un
service.
1 2

Année académique : 2017-2018 : [Link]@[Link] 5


Présentation de l’architecture

3 4

Année académique : 2017-2018 : [Link]@[Link] 6


Fonctionnement
L’interpréteur

La plupart des documents PHP comportent du code statique (code exécutable


par le client web : html, JavaScript, css, …) imbriqué avec du code PHP.
Lorsque l’interpréteur PHP parcourt un document, les parties statiques sont
renvoyées sans traitement. Les parties dynamiques délimitées par des balises
spécifiques sont interprétées.
Balise d’ouverture et de fermeture PHP
Il existe quatre mode d’insertion de code PHP dans du code HTML :
 Mode standard: <?php echo "bonjour"; ?>
C’est le mode à utiliser de préférence. Il est compatible (x)html. Le code PHP
(affichage du mot bonjour sur l’exemple) est entouré des balises < ?php et ?>.
 Mode script: <script language="php"> echo "bonjour" ; </script>
Ce mode n’est pas reconnu par certains éditeurs

Année académique : 2017-2018 : [Link]@[Link] 7


Fonctionnement
L’interpréteur

 Mode asp: <% echo "bonjour" ; %>


Le style asp n’est pas activé par défaut. Pour l’activer il faut utiliser l’option
−−enable−asp−tags lors de la compilation de php ou mettre la directive asp_tags
à On dans le fichier de configuration
de php.
 Mode court: <? echo "bonjour"; ?>
Il n’est actif que si la directive short_open_tag dans le fichier de configuration
de php ([Link]) est à On ou si php a été compilé avec l’option --enable-short-
tags. Pour des problèmes de compatibilité il est conseillé d’utiliser le mode
standard qui garantit la portabilité de vos scripts PHP.

NB:
La balise fermante en fin de fichier est optionnelle.
Deux instructions php sont séparées par un point-virgule. L’instruction qui
précède une balise fermante php ne nécessite pas de point-virgule.
Année académique : 2017-2018 : [Link]@[Link] 8
Fonctionnement
L’interpréteur

lit un fichier source .php puis génère un flux de sortie avec les règles suivantes :
 toute ligne située à l’extérieur d’un bloc PHP ( entre <?php et ?>) est
recopiée inchangée dans le flux de sortie
 le code PHP est interprété et génère éventuellement des résultats intégrés eux
aussi au flux de sortie
 les erreurs éventuelles donnent lieu à des messages d’erreurs qu’on retrouve
également dans le flux de sortie (selon la configuration du serveur)
 une page html pure sauvegardée avec l’extension .php sera donc non
modifiée et renvoyée telle quelle ...

Année académique : 2017-2018 : [Link]@[Link] 9


Fonctionnement

Pages dynamiques et PHP

Lors du chargement d'une page PHP, c'est le serveur qui va lire, interpréter et
exécuter le code. Puis il renvoie le résultat, généralement sous la forme de code
HTML au navigateur. Ainsi le navigateur de l'utilisateur ne voient jamais le
véritable code PHP exécuté.

De plus, le résultat étant une page web classique en HTML, pas besoin
d'installer sur le client des composants spécifiques (java, ...). Il n'y a donc pas de
notion de vitesse d'exécution du côté du client, mais celle du serveur est
prépondérante.

Année académique : 2017-2018 : [Link]@[Link] 10


Fonctionnement
L’interpréteur

Année académique : 2017-2018 : [Link]@[Link] 11


Fonctionnement
L’interpréteur

Année académique : 2017-2018 : [Link]@[Link] 12


Syntaxe, structure et Utilisation
Syntaxe et structure
 Proche du C ou du Perl
 Peu structuré au début
 Possibilité de définir des fonctions et des classes,
 Etc.…

Utilisation
 Grand succès
 Utilisation par de très grands sites
 beaucoup de code libre disponible.
 des dizaines de millions de sites Web l’utilisent à travers le monde. . .
 Etc….

Année académique : 2017-2018 : [Link]@[Link] 13


Syntaxe, structure et Utilisation
Utilisation
Les grands CMS Content Management Systems ou Systèmes de Gestion de
Contenus utilisent
PHP, comme :
 Wordpress
 Joomla
 Drupal
 Etc…
Les CMS de e-commerce aussi :
 Prestashop
 Magento
De grands Framework de développement Web aussi sont disponibles en PHP :
 Symfony
 Zend
 Laravel
 Phalcon
 CakePHP
 Etc… Année académique : 2017-2018 : [Link]@[Link] 14
Syntaxe, structure et Utilisation
Utilisation

Pour résumer, PHP peut être utilisé pour :


 Forums et Messageries
 Commerce électronique
 Banque / Comptes en ligne
 Publication en ligne
 Moteurs de recherche
 Etc….

Année académique : 2017-2018 : [Link]@[Link] 15


Dialogue client-serveur
Pour dialoguer et se comprendre, une application cliente et une application serveur
utilisent un ensemble de règles communes (les protocoles) et suivent un modèle de
communications (OSI,TCP/IP, …).

Année académique : 2017-2018 : [Link]@[Link] 16


Dialogue client-serveur
La couche application et ses protocoles

Elle englobe les protocoles applicatifs et permet de relier une application au


réseau. Une application cliente sur une machine cliente utilise un protocole
compatible à celui utilisé par l’application serveur avec qui elle veut dialoguer.

Exemples de protocoles applicatifs


 HTTP: (HyperText Transfer Protocol) développé pour le Web il permet de
transferer des documents (au format HTML pour la plupart).
 FTP : (File Transfer Protocol), est utilisé pour l'échange de fichiers situés
sur deux ordinateurs distants.
 IMAP : (Internet Message Access Protocol) permet comme POP de
récupérer les courriers électroniques sur un serveur de messagerie mais en
laissant les courriers sur le serveur.

Année académique : 2017-2018 : [Link]@[Link] 17


Dialogue client-serveur
La couche application et ses protocoles

Année académique : 2017-2018 : [Link]@[Link] 18


Connection à un serveur
Pour envoyer des requêtes à un serveur, un client a besoin de plus ou moins
d’informations selon le type de serveur (web, ftp, ssh, MySQL, …):

L’adresse IP: Le client doit connaître l’adresse IP de la machine qui héberge


l’application serveur. Généralement un nom est associé à l’adresse IP via un
serveur DNS (Domain Name Server).

Données d’authentification : Pour certaines connections un login et un mot de


passe sont demandés par le serveur. Exemple des serveurs de base de données
(MySQL, PostgreSQL, oracle, …), ftp (accès anonyme possible), imap, …

Année académique : 2017-2018 : [Link]@[Link] 19


Connection à un serveur
Port : Plusieurs instances de serveurs peuvent tourner sur une machine mais
chacune d’elle ne s’intéresse qu’aux requêtes qui lui sont destinées. Pour cela une
application cliente et une application serveur se mettent d’accord sur un numéro
entier appelé port exclusivement utilisé par l’application serveur sur la machine.
L’adresse IP permet d’identifier de manière unique un ordinateur dans un réseau
et le port permet d’identifier une application serveur unique sur une machine. A
chaque application serveur est attribuée un numéro de port par défaut :

smtp (25), http (80), https (443) ftp (21), ssh (22), DNS (53), LDAP (389),
MySQL (3306)… Il est possible par configuration de changer ce port par défaut.

Année académique : 2017-2018 : [Link]@[Link] 20


Connection à un serveur

Année académique : 2017-2018 : [Link]@[Link] 21


Installation d’un serveur Apache et Mysql
WAMP server

WampServer (Windows Apache Mysql PHP) est une plate-forme de


développement Web sous Windows comprenant principalement les toutes
dernières versions du serveur web Apache, du serveur de base de données
Mysql et du langage de scripts PHP. A la fin de l’installation nous allons
disposer d’une architecture client serveur comme sur le schéma suivant :

Année académique : 2017-2018 : [Link]@[Link] 22


Installation d’un serveur Apache et Mysql
Téléchargement de WampServer

WampServer est disponible gratuitement (sous licence GPL). Pour le télécharger


allez à la section téléchargement du site officiel de WampServer et télécharger la
dernière version stable de l’application [Link] (version 64
bits) disponible en version 32 ou 64 bits.

Pour déterminer la version (32 ou 64) à installer il faut vérifier la version de


Windows exécutée par votre ordinateur. Pour cela, vous pouvez consulter les
propriétés de l’ordinateur (click droit sur Ordinateur (ou sur Poste de travail
sous XP) puis sur Propriétés) puis vous vérifier sous Système la version de
Windows installée.

NB: l’installation du serveur d’application dépend aussi du système


d’exploitation. Pour Macintosh, il nous faut le MAMP, sous linux on peut
installer LAMP (Linux Apache Mysql Php)

Année académique : 2017-2018 : [Link]@[Link] 23


Installation d’un serveur Apache et Mysql
Téléchargement de WampServer

Un autre moyen de vérifier la version installée est de vérifier les dossiers


d’installation des programmes (Program Files) disponibles sur votre machine.
Dans la version 64 bits, il existe un dossier « Program Files x86 » pour les
applications 32 bits et un dossier « Programmes » pour les applications 64 bits.
Cette vérification est indispensable car si un programme 32 bits peut fonctionner
dans une version 64 bits de Windows le contraire n’est pas possible.

Année académique : 2017-2018 : [Link]@[Link] 24


Installation d’un serveur Apache et Mysql
Installation de WampServer

WampServer s'installe facilement et son utilisation très intuitive permet de le


configurer très rapidement (sans toucher aux fichiers de configuration). Double
cliquez sur le fichier téléchargé et laissez vous guider en cliquant sur Next. Tout
est géré par l'installeur de WampServer. Vous devez entre autres accepter la
licence et choisir le répertoire d’installation.
Si l’installation se passe bien, vous devriez voir apparaître un petit symbole
blanc dans le systray (zone de notification dont la partie la plus à droite contient
une horloge et la partie gauche des programmes en exécution) en bas à droite de
votre écran.

Année académique : 2017-2018 : [Link]@[Link] 25


Installation d’un serveur Apache et Mysql
Test du serveur Apache

Pour vérifier que l’installation s’est bien passée et que le serveur a bien démarré
il faut lancer un navigateur sur la machine serveur (machine où l’installation
s’est effectuée) et taper l'URL suivante: [Link] ou [Link].

Si tout se passe bien la page d'accueil du serveur Apache par défaut est affichée.
Nous obtenons le même résultat en passant par l’icône WampServer : Click
gauche sur l’icône puis sur localhost.

NB: Mais il faut commencer par démarrer le serveur pour que cela soit possible.

Année académique : 2017-2018 : [Link]@[Link] 26


Installation d’un serveur Apache et Mysql
Fonctionnement

Les fonctionnalités de WampServer sont très complètes et très intuitives. Via un


click gauche sur
l'icône de WampServer, vous pouvez notamment:
 gérer les services de Apache et MySQL
 passer en mode online/offline (accessible à tous ou limité à localhost)
 installer et changer de version de Apache, MySQL et PHP
 gérer les paramètres de configuration de vos serveurs
 accéder à vos logs
 accéder aux fichiers de configuration
 créer des alias
Via un click droit :
 changer la langue du menu de WampServer
 accéder directement au site officiel
Démarrage et arrêt du serveur
A partir de l’icône WampServer il est possible de gérer le démarrage et l'arrêt du
serveur Apache.
Année académique : 2017-2018 : [Link]@[Link] 27
Installation d’un serveur Apache et Mysql
Hébergement d’une page html :

Un serveur web Apache dispose d’un répertoire racine (DocumentRoot) à partir


duquel les documents sont généralement sauvegardés. Par défaut le
documentRoot du serveur web Apache est le répertoire c:\wamp\www.

Exemple 1: Vérifions si toutes les fonctionnalités fonctionnent

<?php
echo phpinfo(); // cela vous donnera un ensemble d’information
?>
Exemple 2:

<?php
echo $_SERVER["SERVER_PORT"]; // pour avoir le port de la machine
echo $_SERVER['HTTP_USER_AGENT']; // information sur le navigateur
?>

Année académique : 2017-2018 : [Link]@[Link] 28


Travaux pratiques
Exercice 1 :
Créer une page php nommée [Link] permettant d’afficher le message de
bienvenue.

Année académique : 2017-2018 : [Link]@[Link] 29


Année académique : 2017-2018
Intégration à HTML
Une page php porte l'extension « .php ». Une page PHP peut être entièrement
programmée en PHP ou mélangée avec du code html. PHP est un langage «
Embedded HTML », c'est à dire qu'il apparaît à n'importe quel endroit de la page
HTML. Pour ça on le place dans des balises particulières : <?php et ?>.

On peut aussi utiliser les balises <script language="php"> et </script>. La


première forme est préférable pour plus de simplicité et une compatibilité
XHTML. On écrit donc une page HTML dans laquelle on intègre du code PHP.
Exemple:
<html>
<head>
<title> Premiere Page</title>
</head>
<body>
<?php
echo "Bonjour les étudiants de web 2";
?>
</body>
</html>
Année académique : 2017-2018
Intégration à HTML
Commentaires

Comme en HTML, il est possible de mettre des commentaires dans les pages PHP
pour que ce dernier ne soient pas visible au niveau du navigation mais à des
utilisation finale. On peut avoir des commentaires sur la même ligne ou sur
plusieurs lignes
Exemple
<?php
/* commentaire sur
plusieurs lignes */
// Commentaire sur cette ligne
?>

Année académique : 2017-2018


Déclaration d’une variable
Type de données

PHP supporte les types de données suivants :


 nombres entiers,
 nombres à virgule flottante,
 chaînes de caractères,
 tableaux,
 objets (développés dans la section ’programmation orientée objet’).

NB: Tous les noms de variables sont précédés d’un $

Année académique : 2017-2018


Déclaration d’une variable
Variable

Une variable commence par un dollar « $ » suivi d'un nom de variable. Les
variables ne sont pas typées au moment de leur création. Attention PHP est
sensible à la casse : var et Var ne sont pas les mêmes variables ! Voici les règles à
respecter :
 Une variable peut commencer par une lettre
 Une variable peut commencer par un souligné (underscore) « _ »
 Une variable ne doit pas commencer par un chiffre.
Exemple:
<?php
$var=10; // déclaration valide
$Var=2; // déclaration valide
$_toto=‘Bonjour'; // déclaration valide
$3petitscochons=5; // Invalide : commence par un chiffre
$var="Bonjour les étudiants"; // déclaration valide
?>
NB: on peut utiliser « " » ou « ' » pour encadrer l’affichage pour echo ou
print. Année académique : 2017-2018
Déclaration d’une variable
Concaténation

On peut déclarer plusieurs variables. Lors de l’affichage, on peut les concaténer en


utilisant le point (.).
Exemple 1:
<?php
$prenom="Demba";
$nom="Thiam";
echo $prenom.$nom;
?>
Pour rendre l’affichage beaucoup plus joli, on peut intégrer les caractères (" ")
entre les deux variables pour les séparer.
Exemple 2:
<?php
$prenom="Demba";
$nom="Thiam";
echo $prenom." " .$nom;
?>
Année académique : 2017-2018
Déclaration de constante
Les constantes

Une constante est un nom qui représente une valeur simple. Par définition la valeur
d’une constante ne change pas durant l’exécution du script (sauf pour les
constantes magiques). Le langage PHP utilise des constantes scalaires : booléenne
(TRUE, FALSE), entières (1,2, -1, …), réelles (-1.2, 0.314E1,3.14, …), chaine de
caractères ("CECI est une chaîne de caractères", ‘ceci aussi’, ‘a’).

Déclaration d’une constante

Le nom d’une constante comme pour les noms de variables commence par une
lettre ou le caractère souligné suivi d’une combinaison de lettres, chiffres ou
soulignés. Par convention les caractères utilisés pour nommer une constante sont
en majuscule. Les mots clés define et const permettent de définir une constante. Le
mot clé const doit toujours être utilisé dans un contexte global.

Année académique : 2017-2018


Déclaration de constante
Exemple:

<?php
define("universite","Bambey"); //constante universite ayant pour valeur Bambey
const centre='Diourbel'; //constante centre ayant pour valeur Diourbel
$a=25;
if($a<34)
const responsable='Kasse' ; //contexte local donc erreur…
?>

Accès à la valeur une constante


Le nom d’une constante est généralement utilisé pour accéder à sa valeur. Il est
également possible d’utiliser la fonction constant (à utiliser généralement si le
nom de la constante n’est connu que durant l'exécution du script.).

Année académique : 2017-2018


Déclaration de constante
Exemple:

<?php
const centre='Diourbel'; //constante CENTRE ayant pour valeur Diourbel
define("universite","Bambey"); //constante UNIVERSITE ayant pour valeur Bambey
define("annee",2017); //constante UNIVERSITE ayant pour valeur Bambey

$moncentre= "centre";
echo universite;
echo constant($moncentre);
echo centre ;
echo annee;
?>

Année académique : 2016-2017


Année académique : [Link]@[Link]
: 2017-2018
Déclaration de constante
Constantes magiques

PHP fournit des constantes prédéfinies appelées constantes magiques. Certaines


constantes appartiennent à des extensions et ne seront disponibles que si ces
extensions sont compilées avec PHP. Contrairement aux constantes classiques la
valeur d’une constante magique peut changer durant l’exécution d’un script selon
le contexte d’utilisation (néanmoins il n’est pas possible de changer dans un script
la valeur d’une constante magique.). Il y a sept constantes magiques dont la valeur
peut changer selon le contexte :

Année académique : 2017-2018


Déclaration de constante
Exemple:

<?php
echo __LINE__ ."<br/>"; //affiche la ligne ou se trouve cette instruction
echo __LINE__ ."<br/>"; //affiche la ligne ou se trouve cette instruction donc +1
echo __FILE__ ."<br/>"; //affiche le chemin du script.
?>

Fonctions pour les constantes


- defined (‘nomConstante’): vérifie si une constante a été définie avec define. Elle
renvoie une valeur booléenne.

Année académique : 2017-2018


Les opérateurs
Les opérateurs de contrôle

Année académique : 2017-2018


Les structures de contrôle
Le structure if

L’instruction if est une des plus importantes instructions de tous les langages, PHP
inclus ; Elle permet l’exécution conditionnelle d’une partie de code ; Les
fonctionnalités de l’instruction if sont les mêmes en PHP qu’en C;

Syntaxe:
if(expression) commande ou { bloc de commandes }
else commande ou { bloc de commandes }
Il y a aussi le « elseif », combinaison du if et du else. Le elseif en un mot peut
aussi s'écrire en deux mots : le résultat est le même. On peut écrire des elseif en
chaîne. Le premier dont l'expression est vrai est exécuté.
If(expression) commande ou { bloc de commandes }
elseif(expression) commande ou { bloc de commandes }
elseif(expression) commande ou { bloc de commandes }
...

Année académique : 2017-2018


Les structures de contrôle
Le structure if

Exemple:

<?php
$type= "Homme";
if ($type == "Femme") {
echo "Bonjour Madame" ;
} elseif ($type == "Homme") {
echo "Bonjour Monsieur" ;
} else {
echo "Bonjour, je ne connais pas ce genre !" ;
}
?>

Année académique : 2017-2018


Les structures de contrôle
break et continue

L'instruction « break » permet de sortir d'un for, while, foreach ou switch. On peut
lui indiquer de combien de structures on souhaite sortir si elles sont emboîtées.
L'instruction « continue » permet de passer à l'itération suivante.

Attention PHP considère le switch comme une boucle, et dans ce cas, réévalue le
switch. On peut indiquer à continue combien de structures emboîtées relancer.

Année académique : 2017-2018


Les structures de contrôle
Le structure switch

Le « switch » est équivalent à une série de if et permet de comparer avec un grand


nombre de valeurs.
Exemple:
<?php
$i=0;
switch ($i) {
case 0: print "i égale 0";
break;
case 1: print "i égale 1";
break;
case 2: print "i egale 2";
break;
default: print "i est inférieur à 0 ou supérieur à 2";
}
?>

Année académique : 2017-2018


Les structures de contrôle
Le structure switch

Le switch s'arrête à la première expression case vraie puis exécute le code suivant
dans l'ordre indiqué, jusqu'à la première instruction break. S'il n'y a pas de break,
tout le code jusqu'à la fin du switch est exécuté. Dans l'exemple suivant, si $i vaut
0, tous les print seront affichés !
Exemple
<?php
$i=0;
switch ($i) {
case 0: print "i egale 0";
case 1: print "i egale 1";
case 2: print "i egale 2";
default: print "i est inférieur à 0 ou supérieur à 2";
}
?>
NB: Notez aussi que le default doit intervenir en dernier, sinon il n'a aucun intérêt.
Enfin on peut employer une syntaxe alternative avec « : » et « endswitch ».
Année académique : 2017-2018
Les structures de contrôle
Le structure switch

<?php
switch ($i):
case 0: print "i égale 0";
break;
case 1: print "i égale 1";
break;
endswitch
?>

Année académique : 2017-2018


Les opérateurs
Les opérateurs mathématique

Année académique : 2017-2018


Les boucles
Les boucles

Les boucles vous permettent de parcourir un ensemble d'informations stockées


dans un tableau, un fichier texte, une base de donnée, et de les afficher ou de les
traiter.
Les différentes boucles sont:
 while()
 for();
 foreach()
Exemple avec while ()
$i= 0;
while ( $i <= 5 )
{
print 'boucle numero '.$i.'<br/>';
$i++;
}

Année académique : 2017-2018


Les boucles
Les boucles

Exemple avec for()


<?php
for ($i=0;$i<=5;$i++)
{
echo 'boucle numero '.$i.'<br>';
}
?>

Année académique : 2017-2018


Les boucles
Les boucles

La boucle « foreach » est peut-être l'une des plus intéressantes pour la


manipulation de tableaux ou de résultats de requêtes SQL. Elle permet de lister les
tableaux. Elle dispose de deux syntaxes.
foreach (array_expression as $value) commandes
foreach (array_expression as $key => $value) commandes

La première syntaxe récupère les éléments du tableau un par un, séquentiellement.


La valeur de l'élément courant du tableau est placée dans $value.
La seconde syntaxe est presque identique, sauf qu'en plus la clé (l'index) de
l'élément actuel est placée dans $key.

Année académique : 2017-2018


Pratique
Exercice 1 :
Créer une page php pour faire la somme de deux nombres.

Exercice 2 :
Créer une page php pour afficher la tableau de multiplication de 3.

Exercice 3:
Créer une page php pour tester si la personne est majeure ou mineure. Si son âge
est supérieur à 18, dans ce cas elle est majeure sinon elle est mineure.

Exercice 4:
Créer une page php pour créer un menu permettant à l’utilisateur de choisir un
chiffre. Afficher le contenu ou le détail par rapport au chiffre choisi.

Exercice 5:
Créer un page php permettant de calculer la moyenne des nombres de 1 à 10 en
utilisant la boucle for ensuite la boucle while
Année académique : 2017-2018
Les dates en php
Nous allons apprendre maintenant à manipuler les dates sous différents formats et
comment les afficher.
Code à utiliser avec la fonction date() :

Année académique : 2017-2018


Les dates en php
La fonction date()
<?php
$date_du_jour = date("d-m-Y");
echo 'Aujourd\'hui nous sommes le '.$date_du_jour;
?>
Résultat : Aujourd’hui nous sommes le 26-04-2017

La date au format système:


Exemple d'affichage avec la fonction time
<?php
$date_du_jour = time();
echo 'la date système du jour est '.$date_du_jour;
?>
Résultat : la date du système du jour est 1493217107

Année académique : 2017-2018


Les dates en php
Code de tableau à utiliser avec la fonction getdate()

<?php
$time = time(); // la date au format système
$date = getdate($time); // récupération des informations de getdate
echo $date['mday'].' - '.$date['mon'].' - '.$date['year'].' il est '.$date['hours'].':'.$date['minutes'];
?>

Année académique : 2017-2018


Pratique
Exercice 1:
Créer une page php pour afficher la date de la machine sur ce format: JJ/MM//AA.

Exercice 2:
Créer une page php pour afficher le temps de la machine h:mn:s

Année académique : 2017-2018


Les tableaux
Tableau

Il existe 2 types de tableaux, les tableaux nominatifs et les associatifs. Pour créer
un tableau, utiliser la fonction array();

Un tableau PHP est une association ordonnée. Une association fait correspondre
des valeurs à des clés. Les tableaux sont très souples, ils peuvent avoir de multiples
dimensions.

Un tableau est créé avec la fonction array() qui prend comme arguments des
paires « key => value » séparées par des virgules. La clé peut être soit un entier
soit du texte.

Attention: 8 est un entier, 08 une chaîne ! Si la clé est absente alors c'est la
dernière clé entière plus 1 qui est choisie. Si c'est la première, c'est 0 zéro. On
accède aux éléments d'un tableau à l'aide des crochets « [ et ] ». On place entre ces
crochets la clé entière ou la chaîne.

Année académique : 2017-2018


Les tableaux
Tableau nominatif ou numérotés

Ces tableaux sont très simples à imaginer. Regardez par exemple ce tableau,
contenu de la variable $prenoms :
$prenoms est un array : c'est ce qu'on appelle une variable "tableau". Elle n'a pas
qu'une valeur mais plusieurs valeurs (vous pouvez en mettre autant que vous
voulez).
Dans un array, les valeurs sont rangées dans des "cases" différentes. Ici, nous
travaillons sur un array numéroté, c'est-à-dire que chaque case est identifiée par un
numéro. Ce numéro est appelé clé.
Clé Valeur
<?php 0 Demba
$prenoms = array ('Demba', 'Fatou', 'Issa'); 1 Fatou
?> 2 Issa
…….

Année académique : 2017-2018


Les tableaux
Tableau nominatif ou numérotés

Ces tableaux sont très simples à imaginer.


Exemple:
<?php
$var=array(10,15,17,23,9);
echo $var[0]."<br/>"; // 10
echo $var[3]."<br/>"; // 23
?>

L'utilisation de la fonction array n'est pas obligatoire et on peut déclarer un


tableau à la volée.

<?php
$tab[1]=10;
$tab[]=6; // équivaut $tab[2]=6
$tab['message']='le message de bienvenu';
?>
Année académique : 2017-2018
Les tableaux
Tableau nominatif ou numérotés

Il est parfois intéressant d’utiliser une boucle pour parcourir les éléments du
tableaux.

Exemple:
<?php
$var=array(10,15,17,23,9);
echo $var[0]."<br/>"; // 10
echo $var[3]."<br/>"; // 23
foreach ($var as $key => $value)
{
echo $value;
}
?>

Année académique : 2017-2018


Les tableaux
Tableau associatif

Les tableaux associatifs fonctionnent sur le même principe, sauf qu'au lieu de
numéroter les cases, on va les étiqueter en leur donnant à chacune un nom
différent.
Par exemple, supposons que je veuille, dans un seul array, enregistrer les
coordonnées de quelqu'un (nom, prénom, adresse, ville etc...). Si l'array est
numéroté, comment savoir que le n°0 est le nom, le n°1 le prénom, le n°2 l'adresse ?...
C'est là que deviennent utiles les tableaux associatifs.

Exemple:
<?php
$information= array ( 'prenom' => 'Demba', 'nom' => 'Thiam', 'adresse' =>
'Linguere', 'ville' => 'Louga');
?>

Année académique : 2017-2018


Les tableaux
Tableau associatif

Vous remarquez qu'on écrit une flèche (=>) pour dire "associé à". Par exemple, on
dit "ville associé à Louga". Nous avons créé un tableau qui ressemble à la structure
suivante :

Clé Valeur

prenom Demba

nom Thiam

adresse Linguere

ville Louga

Année académique : 2017-2018


Les tableaux
Tableau associatif

Il est aussi possible de créer le tableau case par case comme ceci :

<?php
$information['prenom'] = 'Demba';
$information['nom'] = 'Thiam';
$information['adresse'] = 'Linguere';
$information['ville'] = 'Louga';
?>

NB: Pour afficher un élément, il suffit d'indiquer le nom de cet élément entre
crochets, ainsi qu'entre guillemets ou apostrophes puisque l'étiquette du tableau
associatif est un texte. Par exemple, pour extraire l’adresse, on devra taper :

<?php
echo $information['adresse'];
?>
Année académique : 2017-2018
Les tableaux
Parcourir les éléments du tableau

Lorsqu'un tableau a été créé, on a souvent besoin de le parcourir pour savoir ce


qu'il contient. Nous allons voir trois moyens d'explorer un array :

 La boucle for
 La boucle foreach
 La fonction print_r (utilisée principalement pour le débuggage)

Année académique : 2017-2018


Les tableaux
Parcourir les éléments du tableau

La boucle for
Il est très simple de parcourir un tableau numéroté avec une boucle for. En effet,
puisqu'il est numéroté à partir de 0, on peut faire une boucle for qui incrémente un
compteur à partir de 0 :
Exemple:
<?php
$prenoms = array ('Demba', 'Alioune', 'Issa', 'Fatou');
for ($i = 0; $i < 4; $i++)
{
echo $prenoms[$i] . '<br />';
}
?>

Année académique : 2017-2018


Les tableaux
Parcourir les éléments du tableau

La boucle foreach
La boucle foreach est la boucle plus adapté aux tableaux. C'est une sorte de boucle
for spécialisée dans les tableaux.
foreach va passer en revue chaque ligne du tableau, et lors de chaque passage, il va
mettre la valeur de cette ligne dans une variable temporaire.
Exemple:
<?php
$prenoms = array ('Demba', 'Alioune', 'Issa', 'Fatou');
foreach($prenoms as $pre)
{
echo $pre . '<br />';
}
?>
NB: L'avantage de foreach est qu'il permet aussi de parcourir les tableaux
associatifs.

Année académique : 2017-2018


Les tableaux
Parcourir les éléments du tableau

La boucle foreach

<?php
$information= array ( 'prenom' => 'Demba', 'nom' => 'Thiam', 'adresse' =>
'Linguere', 'ville' => 'Louga');

foreach($information as $info)
{
echo $info. '<br />';
}
?>
NB: Toutefois, avec cet exemple on ne récupère que la valeur. Or, on peut aussi
récupérer la clé de l'élément. On doit dans ce cas écrire foreach comme ceci :
<?php
foreach($information as $cle => $valeur)
?>

Année académique : 2017-2018


Les tableaux
Parcourir les éléments du tableau

La boucle foreach

<?php
$information= array ( 'prenom' => 'Demba', 'nom' => 'Thiam', 'adresse' =>
'Linguere', 'ville' => 'Louga');

foreach($information as $cleinfos => $lesinfos)


{
echo '[' . $cleinfos . '] vaut ' . $lesinfos. '<br />';
}
?>

Année académique : 2017-2018


Les tableaux
Parcourir les éléments du tableau

La fonction print_r

Parfois, en codant votre site en PHP, vous aurez sous les bras un array et vous voudrez
savoir ce qu'il contient, juste pour votre information. Vous pourriez utiliser une boucle for
ou, mieux, une boucle foreach. Mais si vous n'avez pas besoin d'une mise en forme spéciale
et que vous voulez juste savoir ce que contient l'array, vous pouvez faire appel à la fonction
print_r. C'est une sorte de echo spécialisé dans les array.

Cette commande a toutefois un défaut : elle ne renvoit pas de code HTML comme <br />
pour les retours à la ligne. Pour bien voir les retours à la ligne, il faut donc utiliser la balise
HTML <pre> qui nous permet d'avoir un affichage plus correct.

Année académique : 2017-2018


Les tableaux
Parcourir les éléments du tableau

La fonction print_r

<?php
$information= array ( 'prenom' => 'Demba', 'nom' => 'Thiam', 'adresse' =>
'Linguere', 'ville' => 'Louga');

echo '<pre>';
print_r($information);
echo '</pre>';
?>

Année académique : 2017-2018


Les tableaux
Rechercher dans un tableau

 array_key_exists : pour vérifier si une clé existe dans l'array


 in_array : pour vérifier si une valeur existe dans l'array
 array_search : pour récupérer la clé d'une valeur dans l'array

Année académique : 2017-2018


Les tableaux
Rechercher dans un tableau
array_key_exists
La fonction array_key_exists qui va parcourir le tableau pour nous et nous dire si le
tableau contient cette clé. On doit lui donner d'abord le nom de la clé à rechercher, puis
le nom de l'array dans lequel on fait la recherche :

Exemple:
<?php
$information= array ( 'prenom' => 'Demba', 'nom' => 'Thiam', 'adresse' => 'Linguere', 'ville' =>
'Louga');

if (array_key_exists('nom', $information))
{
echo 'La clé "nom" se trouve dans les coordonnées !';
}
if (array_key_exists('quartier', $information))
{
echo 'La clé "quartier" se trouve dans les coordonnées !';
}
?>

Année académique : 2017-2018


Les tableaux
Rechercher dans un tableau
in_array
Le principe est le même que array_key_exists... mais cette fois on recherche
dans les valeurs. in_array renvoit true si la valeur se trouve dans l'array, false
si elle ne s'y trouve pas.
Exemple:
<?php
$information= array ('Demba','Fatou','Issa','Fallou','Aissatou');
if(in_array('Issa', $information))
{
echo 'La valeur "Issa" se trouve dans les informations !<br/>';
}
if(in_array('Aissatou', $information))
{
echo 'La valeur "Aissatou" se trouve dans les informations !<br/>';
}
?>
Année académique : 2017-2018
Les tableaux
Rechercher dans un tableau
Array_search
array_search fonctionne comme in_array : il travaille sur les valeurs d'un
array. Voici ce que renvoit la fonction :
Si elle a trouvé la valeur, array_search renvoit la clé correspondante (c'est-à-
dire le numéro si c'est un array numéroté, ou le nom de la clé si c'est un array
associatif). Si elle n'a pas trouvé la valeur, array_search renvoit false.
Exemple:

<?php
$information= array ('Demba','Fatou','Issa','Fallou','Aissatou');
$position = array_search('Issa', $information);
echo '"Issa" se trouve en position ' . $position . '<br />';
$position = array_search('Aissatou', $information);
echo '"Aissatou" se trouve en position ' . $position;
?>

Année académique : 2017-2018


Les tableaux
Tableau multidimensionnel

On peut aussi créer des tableaux multidimensionnels à l'aide des deux méthodes
précédentes.

Exemple:
<?php
$tab=array("un"=>array("Demba",1=>"Issa",2=>'Fallou'),2=>array(1,2,3),array('un','deux','trois'));

echo $tab['un'][0]."<br/>"; // Demba


echo $tab['un'][1]."<br/>"; // Issa
echo $tab[2][1]."<br/>"; // 2
echo $tab[3][2]."<br/>"; // trois
$tab2['un']['deux']='test'; // créé un tableau à deux dimensions
echo $tab2['un']['deux']; // test
?>

Année académique : 2017-2018


Les tableaux
Quelques fonctions avec les tableaux
On peut connaître le nombre d’éléments d’un tableau grâce aux fonctions :
 sizeof() : retourne le nombre d’éléments d’un tableau, ou
 count() : retourne le nombre d’éléments d’un tableau s’il existe, 1 si la
variable n’est pas un tableau et 0 si la variable n’existe pas.

Chaque tableau entretient un pointeur courant qui sert à naviguer en son sein grâce
aux fonctions :
 reset() : place le pointeur interne sur le premier élément et retourne sa
valeur,
 current() : retourne la valeur de l’ élément courant ,
 next() : place le pointeur interne sur l’ élément suivant et retourne sa
valeur,
 prev() : place le pointeur interne sur l’ élément précédent et retourne sa
valeur,

Année académique : 2017-2018


Les tableaux
Quelques fonctions avec les tableaux

Un tableau peut être trié en utilisant les fonctions suivantes :


 asort()/arsort() : trient le tableau en ordre croissant/décroissant de valeurs
 ksort()/rsort() : trient le tableau en ordre croissant/décroissant de clés ,
 sort() : trie le tableau en ordre croissant clés et valeurs (on perd la
correspondance clé/valeur),
 uasort()/uksort()/usort() : trient le tableau de la même façon que leurs
quasi-homonymes (u pour user ) mais avec une fonction de comparaison
fournie par l’utilisateur.

Année académique : 2017-2018


Pratique
Exercice 1:
Créer un tableau contenant les informations d’un étudiant (matricule, prénom,
nom, téléphone).
1. Utiliser la boucle for et foreach pour afficher les informations de
l’étudiant.
2. Utiliser la fonction print_r avec la balise <pre> pour un affichage
préformât.
3. Rechercher si une clé et une valeur se trouvent dans le tableau.

Année académique : 2017-2018


Les fonctions
Une fonction est une série d'instructions qui effectue des actions et qui retourne
une valeur. En général, dès que vous avez besoin d'effectuer des opérations un peu
longues dont vous aurez à nouveau besoin plus tard, il est conseillé de vérifier s'il
n'existe pas déjà une fonction qui fait cela pour vous. Et si la fonction n'existe pas,
vous avez la possibilité de la créer.

Comme en language C, il existe déjà des fonctions en php permettant de résoudre


des tâches spécifiques.

Année académique : 2017-2018


Les fonctions
PHP propose des centaines et des centaines de fonctions prêtes à l'emploi.
Voici un petit aperçu des fonctions qui existent en php :
 Une fonction qui permet de rechercher et de remplacer des mots dans
une variable
 Une fonction qui envoie un fichier sur un serveur
 Une fonction qui envoie un mail avec PHP (très pratique pour faire
une newsletter !)
 Une fonction qui crypte des mots de passe.
 Une fonction qui renvoie l'heure, la date...
 etc.

Année académique : 2017-2018


Les fonctions
Voici une liste de fonction:
Les fonctions
PHP dispose de nombreuses fonctions mathématiques qui manipulent et
produisent des nombres entiers et décimaux. Le tableau suivant en liste
quelques unes avec des exemples d’utilisation.

Année académique : 2017-2018


Les fonctions
Exemple :

<?php
$prenom="Demba";
echo strtolower($prenom)."<br/>"; // pour mettre en minuscule
echo strtoupper($prenom)."<br/>"; // pour mettre en majuscule
echo ucfirst($prenom)."<br/>"; // pour mettre le premier caractère en majuscule
?>

NB: les fonctions ltrim() et trim() sont fréquemment utilisées avec les formulaires
pour éviter les espaces lors de l’enregistrement dans une base de données ou
fichiers.

Année académique : 2017-2018


Les fonctions
strlen
Cette fonction retourne la longueur d'une chaîne de caractères, c'est-à-dire le
nombre de lettres et chiffres qu'il y a (espaces compris).
Exemple :

<?php
$phrase = 'je veux compter le nombre de caracteres';
$longueur = strlen($phrase);
echo 'La phrase compte ' .$longueur. ' caractères';
?>

Résultat:
La phrase compte 39 caractères

Année académique : 2017-2018


Les fonctions
str_replace
str_replace remplace une chaîne de caractères par une autre.

Exemple :

<?php
$remplace = str_replace('b', 'd', 'bemba boubou');
echo $remplace;
?>
Résultat :
demda doudou

NB: la liste des fonctions est exhaustive.

Année académique : 2017-2018


Les fonctions
str_shuffle
Cette fonction permet de mélanger les caractères d’un mot ou d’une phrase
donné.

Exemple:
<?php
$chaine = 'Cette chaine va etre melangee !';
$chaine = str_shuffle($chaine);
echo $chaine;
?>

Année académique : 2017-2018


Les fonctions
Bien que PHP propose des centaines et des centaines de fonctions. Parfois il n'y
aura pas ce que vous cherchez et il faudra écrire vous-même la fonction. C'est
une façon pratique d'étendre les possibilités offertes par PHP.

En général, si vous effectuez des opérations un peu complexes que vous pensez
avoir besoin de refaire régulièrement, il est conseillé de créer une fonction.

Pour créer une fonction, il vous faut le mot clé function suivi du nom de la
fonction. Elle peut ne pas prendre de paramètres comme elle peut en avoir un à
plusieurs.

Exemple sans paramètre: <?php


function somme()
<?php {
function ma_fonction() $a=5;
$b=6;
{ $s=$a+$b;
return "La somme est " .$s;
traitement; }
} echo somme();
?>
?>
Année académique : 2017-2018
Les fonctions
Exemple avec paramètre:
<?php
function ma_fonction($var1,$var2,….,$varn)
{
traitement;
}
?>

<?php
function somme($a,$b)
{
$s=$a+$b;
return "La somme est " .$s;
}
echo somme(8,9);
?>
NB: on peut avoir une fonction sans retour.

Année académique : 2017-2018


Pratique
Exercice 1:
Créer une page php permettant de remplacer tous les caractères e en a dans une
phrase donnée.

Exercice 2:
Utiliser les fonctions php pour mettre :
 Le premier caractère de la phrase en majuscule
 Les premiers caractères de chaque mot en majuscule
 Compter le nombre de caractères de la chaine

Exercice 3:
Ecrire votre propre fonction pour calculer la surface du cercle en précisant les
paramètres dans la fonction

Année académique : 2017-2018


Inclusion d’une page
« require » et « include » incluent à l'endroit actuel et exécutent le fichier PHP.
Ils sont identiques dans leur fonctionnement à une exception : le traitement des
erreurs. Un include produit un « warning » (le code continue en principe à
s'exécuter) tandis qu'un require produit une « erreur fatale » (l'exécution
s'arrête).

Comme require et include sont des éléments du langage et pas des fonctions il y
a pas besoin d'utiliser les parenthèses. « require_once » et « include_once »
ressemblent à leurs homologues avec cependant une différence. Quoi qu'il arrive,
le fichier est inclus une seule fois. Si un second « require_once » apparaît avec
le même fichier, l'instruction ne sera pas exécutée.

Année académique : 2017-2018


Inclusion d’une page

Include
 Semblable aux include du C/C++
 Réalise une inclusion physique du fichier demandé

include_once :
 identique au include
 protège contre d’éventuelles inclusions multiples
 qui pourraient mener à des erreurs (redéclarations, etc.)

require et require_once :
 fonctionnent comme le include et le include_once respectivement
 mais le programme s’arrête si le fichier inclus n’existe pas

Année académique : 2017-2018


Inclusion d’une page

<?php
<?php
include("[Link]");
require("[Link]");
echo "<br/>";
echo "<br/>";
echo "je suis un autre texte";
echo "je suis un autre texte";
?>
?>

Année académique : 2017-2018


Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
GET et POST

Le but est de récupérer le contenu des champs d'un formulaire HTML dans notre
code PHP pour pouvoir le traiter. Lorsqu'un formulaire est envoyé à un script PHP,
toutes les variables seront disponibles automatiquement dans le script.

Les formulaires peuvent être de type GET ou POST. Pour rappel, dans un
formulaire de type GET, les informations sont passées directement par l'URL en
clair, ce qui peut poser des problèmes de limitations suivant le serveur.

La méthode POST n'a pas ce genre de limitation, car les informations sont
transmises par le conteneur de variables globales (dans l'entête) et sont de plus
cachées. PHP peut gérer les deux méthodes de manière transparente.

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

Chaque champ de formulaire en PHP est défini par un nom et une valeur. Dans un
script, PHP va récupérer ces noms et ces valeurs dans des tableaux spéciaux dit
super globaux (accessibles depuis partout).
Pour la méthode GET, le tableau est $_GET, pour la méthode POST le tableau est
$_POST. Si vous ne souhaitez pas vous soucier de la méthode, vous pouvez
utiliser le tableau $_REQUEST. En index on aura le nom du champ de formulaire
(ou de la variable passée en URL) et en valeur la valeur du champ ou GLOBALS
(disponible entre autres dans les deux cas).

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

Exemple de récupération avec : $_POST


<form action="[Link]" method="post">
Name: <input type="text" name="username"><br>
Email: <input type="email" name="email"><br>
<input type="submit" name="valider" value="valider">
</form>

<?php
if(isset($_POST["valider"]))
{
$user=$_POST["username"];
$email=$_POST["email"];
if(isset($user) && (isset($email)))
{
echo "Le username :" .$user."<br/>";
echo "L'email :" .$email."<br/>";
}
}
?>
Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

Exemple de récupération avec : $_REQUEST


<form action="[Link]" method="post">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" name="valider" value="valider">
</form>

<?php
if(isset($_REQUEST["valider"]))
{
$user=$_REQUEST["username"];
$email=$_REQUEST["email"];
if(isset($user) && (isset($email)))
{
echo "Le username :" .$user."<br/>";
echo "L'email :" .$email."<br/>";
}
}
?>
Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

Exemple de récupération avec : $GLOBALS


<form action="[Link]" method="post">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" name="valider" value="valider">
</form>

<?php
if(isset($GLOBALS["_POST"]["valider"]))
{
$user=$GLOBALS["_POST"]["username"];
$email=$GLOBALS["_POST"]["email"];
if(isset($user) && (isset($email)))
{
echo "Le username :" .$user."<br/>";
echo "L'email :" .$email."<br/>";
}
}
?>
Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

Exemple de récupération avec : $GLOBALS


<form action="[Link]" method="GET">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" name="valider" value="valider">
</form>

<?php
if(isset($GLOBALS["_GET"]["valider"]))
{
$user=$GLOBALS["_GET"]["username"];
$email=$GLOBALS["_GET"]["email"];
if(isset($user) && (isset($email)))
{
echo "Le username :" .$user."<br/>";
echo "L'email :" .$email."<br/>";
}
}
?>
Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

Remarque :

$_GET ne contiendra que les variables de type GET. $_POST ne contiendra que
les variables de type POST. $_REQUEST contient les variables de type POST et
GET mais aussi les variables de cookies.

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

NB: On peut aussi passer par la fonction « extract » qui permet d'exporter un
tableau en variables. Ainsi pour le tableau $_POST :

Exemple:
<?php
extract($_POST);
echo $username."<br>";
echo $email."<br>";
?>

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération des données

Exemple:
<form action="[Link]" method="GET">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" name="valider" value="valider">
</form>

<?php
if(isset($GLOBALS["_GET"]["valider"]))
{
extract($_GET);
echo "Le username :" .$username."<br/>";
echo "L'email :" .$email."<br/>";
}
?>

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération des données dans un checkbox

<form action="[Link]" method="post">


Choisissez les pays de votre choix :<br/>
France: <input type="checkbox" name="pays[]" value="France"><br>
Senegal: <input type="checkbox" name="pays[]" value="Senegal"><br>
Allemagne: <input type="checkbox" name="pays[]" value="Allemagne"><br>
Usa: <input type="checkbox" name="pays[]" value="Usa"><br>
<input type="submit" name="valider" value="valider">
</form>

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération des données dans un checkbox

<?php
if(isset($_REQUEST["valider"]))
{
if(isset($_POST["pays"]))
{
$pays=$_POST["pays"];
foreach ($pays as $pa => $p) {
echo $pays[$pa]."<br/>";
}
}
else
{
echo "vous n'avez pas fait de choix";
}
}
?>
Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
Récupération des données dans une liste déroulante
<form action="[Link]" method="post">
Choisissez les pays de votre choix :<br/>
<select name="pays">
<option value="Senegal">Senegal</option>
<option value="Allemagne">Allemagne</option>
<option value="Usa">USA</option>
</select>
<input type="submit" name="valider" value="valider">
</form> <?php
if(isset($_REQUEST["valider"]))
{
if(isset($_POST["pays"]))
{
$pays=$_POST["pays"];
echo $pays."<br/>";
}
else
{
echo "vous n'avez pas fait de choix";
}
}
?>
Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
Récupération des données d’un bouton radio
<form action="[Link]" method="post">
Choisissez un genre :<br/>
Masculin: <input type="radio" name="sexe« value="Masculin">
&nbsp;&nbsp;&nbsp;
Feminin: <input type="radio" name="sexe" value="Feminin"><br>
<input type="submit" name="valider" value="valider">
</form>

<?php
if(isset($_REQUEST["valider"]))
{
if(isset($_POST["sexe"]))
{
$sexe=$_POST["sexe"];
echo $sexe."<br/>";
}
else
{
echo "vous n'avez pas fait de choix";
}
}
?>
Année académique : 2017-2018
Année académique : 2016-2017 :[Link]@[Link]
Récupération les informations contenues dans le lien

Imaginons l'appel d'une page [Link] par une URL comme ceci :

<a href="[Link]?id=1">recuperer l'identifiant</a><br/>

Ici on transmet une variable via une URL et donc la méthode implicite GET. Pour
récupérer « id » dans un code PHP on peut donc faire :

<?php
if(isset($_REQUEST["id"]))
{
echo "l'identifiant : ". $_GET['id']."<br/>";
echo "l'identifiant : ".$_REQUEST['id']."<br/>";
}
?>

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération les informations contenues dans le lien

Les liens
Il est possible de transmettre des données d’un script à un autre en utilisant les
liens à la place des formulaires. Lorsque l’utilisateur clique sur un lien pour
accéder à un script il envoie également l’ensemble des informations contenues
dans ce lien au script.
Syntaxe de transmission
Les variables à transmettre sont séparées de l’URL du lien par le caractère point
d’interrogation « ? ». Le caractère & permet de séparer les variables entre elles.
Exemple
<a href= "../[Link]?nom=Diop&prenom=moussa&age=10">envoyer </a>

<?php
echo "Nom:" . $_GET["nom"] . "<br />";
?>

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Récupération les informations contenues dans le lien

<a href="[Link]?id=1&prenom=moussa&age=10">recuperer les


informations</a><br/>
<?php
if(isset($_REQUEST["id"]))
{
echo "l'identifiant : ". $_GET['id']."<br/>";
echo "prenom : ". $_GET['prenom']."<br/>";
echo "age : ".$_REQUEST['age']."<br/>";
}
?>

Année académique : 2017-2018


Année académique : 2016-2017 :[Link]@[Link]
Année académique : 2017-2018
Comment conserver des variables de page en page?

En php, on a plusieurs façon de conserver des variables de page en page :


 En stockant leurs valeurs dans une base de données.
 En les enregistrant dans un fichier sur le serveur (mais oblige à donner des
droits d'écriture aux visiteurs).
 Utiliser des cookies.
 En les envoyant dans l'URL (mais seront visibles aux visiteurs dans la
barre d'adresse et cela leur impose de toujours utiliser les liens
hypertextes).
 En les passant par un formulaire (mais impose aux visiteurs de cliquer sur
un bouton d'envoi).
 En utilisant une session.

Année académique : 2017-2018


Pourquoi utiliser les sessions?
 Pour conserver de page en page les valeurs de certaines variables.
 Pour pister le parcours du visiteur.
 Pour effectuer des statistiques
 Etc….

Il existe trois manières de démarrer une session :


Automatique si session.auto_start est à 1.
Manuellement avec la commande session_start().
Implicitement par la commande session_register() (obsolète).
Syntaxe : boolean session_start ( void) Crée une session ou continue la session
courante, en fonction de l'identifiant de session passé par l'URL (méthode GET)
ou par un cookie.

Exemple :
<?php
session_start() ;
...
?>
Année académique : 2017-2018
Comment fonctionne une session?

Les sessions permettent tout du long de la visite d'un internaute sur le site, de
conserver des informations de façon transparente.

Les sessions sont activées manuellement par la commande session_start().


Le serveur attribue à chaque visiteur un identifiant unique qui est soit envoyé au
client sous forme de cookie (par défaut), soit passé de façon systématique dans
l'URL.

Année académique : 2017-2018


Comment fonctionne une session?

Fonctions PHP et gestion des sessions

 session_start: initialisation de la session. A son appel PHP essaie alors de


lire l'identifiant fourni par l'utilisateur (cookies, url). S'il trouve l'identifiant
il va chercher le fichier correspondant et met à disposition les informations
sauvegardées dans le tableau associatif $_SESSION[]. Si aucun identifiant
n'est disponible un nouvel identifiant est créé pour le nouveau visiteur.
 Enregistrement d’une variable dans la session :
$_SESSION["nomvariable"]=valeur. La variable $nomvariable est alors
enregistrée dans la session en cours et est ainsi disponible par l'utilisation
de $_SESSION["nomvariable"].
 Suppression d’une variable dans la session :
unset($_SESSION["nomvariable"]) détruit la variable $nomvariable de la
session en cours.
 session_destroy() détruit les données de session et ferme la session en
cours.

Année académique : 2017-2018


Comment fonctionne une session?

Exemple: <?php
//page deux
<?php
session_start();
//page une
if (isset( $_SESSION['annee'])) {
session_start();
$annee=$_SESSION["annee"];
$annee=2018;
echo "annee : " .$annee."<br/>";
$mois=05;
}
$_SESSION["annee"]=$annee;
if (isset( $_SESSION['mois'])){
$_SESSION["mois"]=$mois;
$mois=$_SESSION["mois"];
echo "annee :"
echo "mois : " .$mois."<br/>";
.$_SESSION["annee"]."<br/>";
}
echo "mois :"
$annee=2017;
.$_SESSION["mois"]."<br/>";
$_SESSION["annee"]=$annee;
?>
Unset($_SESSION["mois"]);
<a href="[Link]">Aller page 2</a>
?>
<a href="[Link]">Aller page 3</a>
<a href="[Link]">Aller page 1</a>
<a href="[Link]">Aller page 3</a>

Année académique : 2017-2018


Comment fonctionne une session?

Exemple:

<?php
session_start();
if (isset($_SESSION['annee'])) {
$annee=$_SESSION["annee"];
echo "annee :" .$annee."<br/>";
}
if (isset( $_SESSION['mois'])) {
$mois=$_SESSION["mois"];
echo "mois :" .$mois."<br/>";
}
else
echo "mois inexistant<br/>";
?>
<a href="[Link]">Aller page 1</a>
<a href="[Link]">Aller page 2</a>

Année académique : 2017-2018


Durée d’expiration

La durée de vie d'une session PHP dépend de trois paramètres de configuration du


fichier [Link] :session.gc_maxlifetime, session.cookie_lifetime et
session.cache_expire.
 Le premier concerne la durée de vie des données sur le serveur, en nombre
de secondes. Il est par défaut de 1440 secondes, soit 24 minutes. Au delà,
les données sont supprimées et elles seront rechargées via le cookie de
session lors du prochain appel.

 Le second est la durée de vie du cookie de session, exprimé en secondes.


Par défaut la valeur est zéro (0) ce qui signifie : jusqu'à ce que le
navigateur soit éteint.

 Le troisième est la durée de vie des données de session, en minutes. Sa


valeur par défaut est de 180 minutes, soit trois heures. Ce qui veut dire que
dans une même session, on peut rester trois heures sur la même page, les
valeurs ne sont pas perdues.

Année académique : 2017-2018


Durée d’expiration

Au delà, il faut rouvrir une nouvelle session et restaurer de nouvelles valeurs. A


chaque chargement de page (ouverture de session), on recommence le décompte.

On peut modifier le délai d'expiration de la session grâce à la fonction


session_cache_expire() qui prend comme valeur la nouvelle durée en minutes.
Sans paramètre elle retourne la valeur actuelle.

Année académique : 2017-2018


Cookies

L’information est stockée dans un petit fichier texte sur le navigateur du client. On peut par
exemple s’en servir pour stocker un identifiant de session, un login, un compteur de visites
ou encore mesurer un temps de connexion

Un cookie s'envoie avec la fonction setcookie(). Les arguments sont les suivants :
 Nom
 Valeur
 date d'expiration (un timestamp)
 chemin (validité du cookie suivant le chemin dans l'url)
 domaine (pare défaut, le vôtre)
 secure : flag de sécurité : le cookie n'est accessible que via une connexion sécurisée.

NB: Seul le premier argument est obligatoire. Pour ne pas spécifier une valeur, il suffit
de ne rien mettre. Attention à quelques limitations :

Année académique : 2017-2018


Cookies

 Un cookie étant envoyé avec les entêtes HTTP, il ne peut pas être envoyé si une sortie
a déjà eu lieu (html, texte, ...)

 Un cookie n'est pas disponible dans la page qui l'a créé. Il faut soit recharger la page,
soit pointer sur une autre.

 Un cookie ne peut être supprimé qu'avec les mêmes paramètres qui ont servi à sa
création. C'est le navigateur qui supprime le cookie.

Année académique : 2017-2018


Cookies
Exemple 1:
<?php
setcookie("lecookie",session_id(),time()+3600);
if(isset($_COOKIE['lecookie']))

echo $_COOKIE['lecookie'];
?>

Dans l'exemple précédent, au premier chargement rien ne sera affiché car le contenu
du cookie n'est pas encore accessible. Au deuxième chargement la valeur sera
réellement affichée, mais attention au décalage entre la mise à jour et l'accès.

Exemple 2:
<?php
if(!isset($_COOKIE['lecookie'])) {
setcookie("lecookie",'web 2',time()+3600);
header("Location: [Link]"]);
}
?>

Année académique : 2017-2018


Cookies
Remarque

Mais si on a des informations en plus grand nombre à stocker ou qui revêtent un


caractère plus sensible, on préférera les stocker essentiellement côté serveur et utiliser
le mécanisme plus complet des sessions. Celui-ci consiste à utiliser le tableau associatif
_SESSION[] qui permet de stocker toute sorte d’informations associées à ce client
(données de type nombres ou chaines, tableaux ou objets PHP).

Année académique : 2017-2018


Cookies
On accède au cookie grâce à la variable globale $_COOKIE qui est un tableau. L'index
du tableau est le nom du cookie.

<?php
setcookie("lecookie",session_id(),time()+3600);
if(isset($_COOKIE['lecookie']))
echo $_COOKIE['lecookie'];

if(!isset($_COOKIE['lecookie'])) {
setcookie("lecookie",'web 2',time()+3600);
header("Location: [Link]");
}

$valeur=$_COOKIE['lecookie'];
echo $valeur;
?>

Année académique : 2017-2018


Cookies
Note : on peut placer les tableaux avec les cookies. Il suffit de nommer son cookie
avec une notation par crochets.

<?php
setcookie("lecookie[1]",'linguere',time()+3600);
setcookie("lecookie[2]",'louga',time()+3600);
setcookie("lecookie[3]",'kebermer',time()+3600);

foreach($_COOKIE as $tab) {
if(is_array($tab))
foreach($tab as $key => $value)
echo "$key => $value";
}
?>

Année académique : 2017-2018


Année académique : 2017-2018 : [Link]@[Link]
Php et le Système de Gestion des Bases de Données
MySQL

L'intérêt majeur de PHP est son interfaçage avec un grand nombre de serveurs de
bases de données (MySQL, Postgres, Oracle, utilisation de ODBC, ...) d'une
manière relativement simple et efficace. Pratiquement tous les SGBD sont pris en
charge mais PHP s'utilise le plus souvent avec le serveur MySQL.

Année académique : 2017-2018 : [Link]@[Link]


La base de données

Créons la base de données : web2

La table etudiant avec (id_etudiant,prenom,nom,adresse,telephone)


Id_etudiant de type entier (auto increment)
Prenom, nom, adresse,telephone de type varchar;

 Create database web2;

 Create table etudiant(id_etudiant int auto_increment, prénom varchar(50),nom


varchar(50), adresse varchar(50), telephone varchar(10),constraint PK_Etudiant
primary key(id_etudiant));

Année académique : 2017-2018 : [Link]@[Link]


APIs d’interfaçage des serveurs de base de
données en Php
PHP est un langage côté serveur, qui peut être utilisé pour créer des pages Web
dynamiques. Il fournit un support d'accès à plusieurs systèmes de bases de
données, dont MySQL. L'exploitation de MySQL avec PHP peut s'effectuer à
travers trois API principalement :
mysql, mysqli et PDO (PHP Data Objects). Ces API, selon qu’elles soient
orientées objet ou procédurales, fournissent des classes ou des fonctions pour
faciliter aux développeurs les tâches d’interfaçage aux serveurs de bases de
données.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard
mysql

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql

C’est l’extension la plus ancienne. Elle fournit une interface comportant un


ensemble de fonctions pour interagir avec un serveur de base de données MySQL.
Même si elle fonctionne avec les versions récentes du serveur MySQL, elle ne
prend plus en considération les dernières fonctionnalités. Cette extension n’est
donc plus à utiliser surtout avec des versions de MySQL supérieures à 4.3.1.
Connexion au serveur
On utilise la fonction mysql_connect(). Cette fonction prend (au minimum) trois
paramètres : le serveur (hostname) l'utilisateur et son mot de passe.
<?php
$host="localhost" ;
$user="root";
$pass="";
$con=mysql_connect($host, $user, $pass);
if(!$con) die ("erreur de connexion à MySQL");
?>

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql

Choix d'une base

On choisit une base de données par défaut avec la fonction mysql_select_db().


Elle prend au minimum un paramètre, le nom de la base. Le second paramètre
optionnel est une ressource retournée par mysql_connect, en cas de connexion sur
plusieurs serveurs MySQL. Par défaut, la fonction prend la dernière connexion
ouverte (celle du dernier mysql_connect exécuté).

<?php
$base="web2";
$db= mysql_select_db($base);
if(!$db) die("Erreur de connexion à la base". $base);
?>

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql

Fermeture d'une connexion

On ferme une connexion à MySQL avec la fonction mysql_close(). Cependant


dans le cas de connexion non persistantes (voir à ce point) cette fonction n'est pas
obligatoire car PHP ferme automatiquement les connexions à la fin d'un script.
<?php
mysql_close($con);
?>

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql

Séquence complète pour une base

<?php
$host="localhost"
$user="root";
$pass="";
$base="web2";
mysql_connect($host, $user, $pass) or die("erreur de connexion à MySQL");
mysql_select_db($base) or die("erreur à la sélection de $base);
mysql_close();
?>

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql :Les requêtes
Exécuter une requête

On exécute une requête SQL avec la fonction mysql_query(). Cette fonction


prend au moins un paramètre : une requête SQL sous forme de chaîne. La fonction
retourne FALSE en cas d'échec (colonne ou table invalide, droits insuffisants, pas
de connexion, etc.).

ATTENTION : Ce n'est pas parce que l'appel à mysql_query() n'a pas retourné
d'erreur que la fonction retourne des lignes de résultats dans le cas d'un SELECT
par exemple.
La requête peut être de n'importe quel type (sélection, mise à jour, destruction,
etc.). Dans le cas d'un SELECT, SHOW, ou DESCRIBE, mysql_query() retourne
une ressource qui sera ensuite utilisée pour lire le résultat.

<?php
$result= mysql_query("select prenom,nom,adresse from etudiant");
?>

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql :Les requêtes
Nombre de lignes affectées

Dans le cas d'un DELETE, INSERT, REPLACE ou UPDATE, on peut connaître le


nombre de lignes affectées (modifiées) par la requête à l'aide de la fonction
mysql_affected_rows().

<?php
$result=mysql_query("select prenom,nom, adresse from etudiant");
if($result)
echo mysql_affected_rows()." enregistrements";
?>

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql :Les requêtes
Nombre de lignes affectées

Dans le cas d'un DELETE, INSERT, REPLACE ou UPDATE, on peut connaître le


nombre de lignes affectées (modifiées) par la requête à l'aide de la fonction
mysql_affected_rows().

Le nombre d’enregistrement dans la table etudiant:


<?php
$host="localhost";
$user="root";
$pass="";
$base="web2";
mysql_connect($host, $user, $pass) or die("erreur de connexion à MySQL");
mysql_select_db($base) or die("erreur à la sélection de $base");
$result= mysql_query("delete from etudiant where id_etudiant=‘1'");
echo mysql_affected_rows()." Enregistrements supprimés";
mysql_close();
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysql :Les requêtes
Nombre de lignes retournées

Dans le cas d'un SELECT, le nombre d'enregistrements (lignes) retourné est


obtenu avec la fonction mysql_num_rows($resultat). Cette fonction prend en
paramètre la variable de la requête.

Le nombre d’enregistrement dans la table etudiant:


<?php
$host="localhost";
$user="root";
$pass="";
$base="web2";
mysql_connect($host, $user, $pass) or die("erreur de connexion à MySQL");
mysql_select_db($base) or die("erreur à la sélection de $base");
$result= mysql_query("select * from etudiant");
echo mysql_num_rows($result)." Enregistrements retournés";
mysql_close();
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysql :Les requêtes
Récupérer les résultats

La fonction la plus sympathique pour récupérer les enregistrements après


l'exécution d'une sélection est mysql_fetch_array(). Elle prend au minimum un
paramètre : une ressource résultat (résultat de mysql_query). Elle retourne une
ligne de résultat sous forme d'un tableau associatif, d'un tableau indexé ou des
deux. Par défaut, le tableau retourné est à la fois associatif et indexé.

Dans un tableau associatif, l'index du tableau est le nom du champ correspondant à


la colonne. Dans un tableau indexé, les colonnes sont numérotées à partir de zéro.
Notez que mysql_fetch_array() ne retourne qu'une seule ligne de résultat. Pour
passer à la suivante, il faut exécuter la fonction à nouveau. Elle retournera FALSE
quand il n'y aura plus de lignes à lire.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql :Les requêtes
Récupérer les résultats

<?php
$host="localhost";
$user="root";
$pass="";
$base="web2";
mysql_connect($host, $user, $pass) or die("erreur de connexion à MySQL");
mysql_select_db($base) or die("erreur à la sélection de $base");
$result= mysql_query("select prenom,nom,adresse from etudiant");
echo mysql_num_rows($result)." Enregistrements retournes <br/>";
while($tab=mysql_fetch_array($result))
{
echo $tab['prenom'].', '.$tab['nom']."<br>";
// ou de cette façon
echo $tab[0].', '.$tab[1]."<br>"; // idem
}
mysql_close();
?> Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysql :Les requêtes
Récupérer les résultats

Notez l'expression du while. Pour y rentrer, il faut que le résultat de la requête


($result) ne soit pas FALSE (donc que la requête ait fonctionné) et qu'il reste des
lignes à lire. Autrement dit si la requête ne retourne rien, on ne rentre pas dans la
boucle.
Notez enfin qu'il existe deux autres fonctions possibles :
 mysql_fetch_row()
 mysql_fetch_assoc()

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql :Les requêtes
Récupérer les résultats

mysql_fetch_row()
<?php
$host="localhost";
$user="root";
$pass="";
$base="web2";
mysql_connect($host, $user, $pass) or die("erreur de connexion à MySQL");
mysql_select_db($base) or die("erreur à la sélection de $base");
$result= mysql_query("select prenom,nom,naissance from etudiant");
echo mysql_num_rows($result)." Enregistrements retournes<br/>";
while($tab=mysql_fetch_row($result))
{
echo $tab[0].', '.$tab[1]."<br>";
}
mysql_close();
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysql :Les requêtes
Insertion avec auto-incrément

L'identifiant unique d'une table est souvent un entier auto-incrémenté. L'avantage


est qu'il n'y a pas besoin de gérer cet identifiant, c'est MySQL qui le détermine tout
seul. Mais dans certains cas, il peut être nécessaire de récupérer la valeur de ce
champ auto-incrémenté après une insertion pour, par exemple, mettre à jour un
autre enregistrement (liste chaînée, jointure, etc.). On utilise pour ça la fonction
mysql_insert_id().
<?php
$host="localhost";
$user="root";
$pass="";
$base="web2";
mysql_connect($host, $user, $pass) or die("erreur de connexion à MySQL");
mysql_select_db($base) or die("erreur à la sélection de $base");
$result=mysql_query("insert into etudiant (id_etudiant,prenom,nom,adresse,telephone)
values ('','baba','Tall','Fatick','708765432')");
//$id= mysql_insert_id();
$result=mysql_query("select prenom, nom,adresse from etudiant where id_etudiant=6");
$tab=mysql_fetch_array($result);
echo $tab['prenom'].', '.$tab['nom']; // baba, Tall
mysql_close();
Année académique : 2017-2018 : [Link]@[Link]
?>
L’extension standard mysql :Les requêtes

Récupération des erreurs

En cas d'erreur lors d'une manipulation sur MySQL, on peut récupérer le numéro
de l'erreur MySQL par la fonction mysql_errno(). De même on peut récupérer le
message d'erreur par la fonction mysql_error().

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysql :Les requêtes

Application:

Créer une base de données gestion_produit avec une table produit contenant les
attributs suivants (id_produit, nom_produit, libelle, quantite, date_stock).

1. Créer un formulaire (saisie_produit.php) pour la saisie des produits. La saisie


de tous les champs est obligatoire sinon on redirige l’utilisateur dans la page
saisie_produit.php avec un message.
2. Si toute la vérification est correcte, on insère le produit dans la table de la base
de données. Utiliser la fonction header pour rediriger l’utilisateur après
enregistrement du produit dans la base dans la page liste_produit.php.
3. Dans la page liste_produit.php, on va afficher la liste des produits
(nom_produit, libelle, quantite, date_stock) et deux liens pour la suppression
et la mise à jour de la ligne sélectionnée.
4. Affiche un message de confirmation avant la suppression d’un produit.
5. Pour la mise à jour d’un produit, on charge les informations du produit dans le
formulaire de la page mise_produit.php
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard
mysqli

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli

Mysqli
L’utilisation de mysqli peut se faire de manière procédurale à travers des fonctions
ou orientée objet à travers des objets, méthodes et attributs.
Connexion procédurale
- mysqli_connect est la fonction de connexion. Elle a besoin de quatre paramètres
fondamentaux: l'adresse du serveur, le login, le mot de passe et le nom de la base
de données. La fonction mysqli_connect retourne l'identifiant de la connexion au
serveur MySQL en cas de succès ou FALSE en cas d'échec. Cette fonction est un
alias de __Construct et donc de la connexion orientée objet.
- mysqli_connect_error renvoie les éventuelles erreurs de connexion.
- mysqli_connect_errno renvoie le code d’erreur généré par mysqli_connect (0 si
aucune erreur). Elle prend comme argument un identifiant de connexion.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli

Connexion à la base données :


 connexion procédurale

<?php
$host="localhost";
$user="root";
$pass="";
$base="web2";
$con=mysqli_connect($host,$user,$pass,$base)
or die ("Erreur de connexion ".mysqli_connect_errno($con));
echo "Connexion réussie";
?>

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Connexion à la base données :
 connexion orientée objet

 Un constructeur de mysqli, à quatre arguments comme pour mysqli_connect,


permet d’ouvrir une connexion sur le serveur MySQL et renvoie un objet
représentant cette connexion.
 La méthode connect_error pour renvoyer une chaine null ou le message
d’erreur.
 La méthode connect_errno pour renvoyer 0 ou le code d’erreur de la
connexion

<?php
$host="localhost";
$user="root";
$pass="";
$base="web2";
$con=new mysqli($host,$user,$pass,$base) ;
if($con->connect_errno) die("Erreur code ".$con->connect_errno." : ". $con->connect_error);
echo "Connexion réussie";
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysqli
Lancement d'une requête

La requête concerne la base de données qui a été sélectionnée lors de l’étape


précédente.
Lancement d’une requête avec mysqli
Comme pour la connexion au serveur, le lancement d’une requête peut se faire de
manière procédurale à travers des fonctions ou orientée objet à travers des objets,
méthodes et attributs.
Version procédurale
 mysqli_query est une fonction pour exécuter une requête. Elle a besoin de
deux paramètres fondamentaux: un identifiant de lien disponible lors de la
première étape de connexion ($con dans l’exemple), la requête à exécuter.
La fonction mysqli_query retourne soit :

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête

 FALSE en cas d'échec comme lors d’une erreur de syntaxe, d’un problème de
droit, ...
 Un jeu de résultats si la requête est de type select, describe, show ou explain,
 TRUE pour les autres types de requêtes comme update, insert, delete, drop, ...
qui ne génère aucun résultat.

 mysqli_num_rows renvoie le nombre de lignes d’un jeu de résultat. Elle prend


en argument le jeu de résultat obtenu de la fonction mysqli_query. L’exemple 4
montre une utilisation de cette fonction.
 mysqli_affected_rows renvoie le nombre d’enregistrements affectés par la
dernière requête. Elle est utile pour connaître par exemple le nombre
d’enregistrements insérés, supprimés ou mis à jour.
 mysqli_free_result libère le jeu de résultats. Elle prend en argument le jeu de
résultat à libérer. Elle est appelée après le traitement des résultats à effectuer à
l’étape suivante. Il est important de libérer le jeu de résultats dès que vous n’en
avez plus besoin.
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysqli
Lancement d'une requête
<?php
$con=mysqli_connect("localhost","root","","web2") or die ("Erreur connexion " .
mysqli_connect_errno($con));
$req1="insert into etudiant(id_etudiant,prenom,nom,adresse,telephone)
values('"."','Demba','Faye','Louga','709876543')";
if(mysqli_query($con,$req1) === true)
{
echo "Enregistrement bien reussi";
}
else
{
echo "Echec d'enregistrement";
}
$req2="select prenom,nom,adresse,telephone from etudiant";
if($result=mysqli_query($con,$req2))
{
echo "nombre d'enregistrement : ".mysqli_num_rows($result);
// libération du résultat
mysqli_free_result($result);
}
else
{
echo "Erreur selection à la base de données";
}
Année académique : 2017-2018 : [Link]@[Link]
?>
L’extension standard mysqli
Lancement d'une requête : affichage

Il s’agit généralement d’afficher le résultat de la requête où de renseigner sur le


nombre d’insertion, de suppression, … réalisées. Pour extraire les données
retournées plusieurs fonctions/méthodes peuvent être utilisées selon l’API:

Affichage du résultat avec mysqli


Comme lors des précédentes étapes, l’affichage du résultat avec mysqli peut se
faire de manière procédurale à travers des fonctions ou orientée objet à travers des
objets, méthodes et attributs. Nous allons vous présenter pour chacun des cas une
liste de fonction permettant de récupérer une ligne du jeu de résultats.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête : affichage

Version procédurale
 mysqli_fetch_row . Cette fonction prend en argument le jeu de résultats. Elle
permet de récupérer la ligne courante du jeu de résultats sous la forme d’un
tableau indexé et de positionner le curseur sur la ligne suivante. Lorsque le
curseur atteint la fin du jeu des résultats, la fonction renvoie NULL.
 mysqli_fetch_assoc. Elle prend en argument le jeu de résultats et permet de
récupérer la ligne courante du jeu de résultats sous la forme d’un tableau
associatif. Les noms des colonnes du résultat sont les index du tableau. Elle
positionne ensuite le curseur sur la ligne suivante. Lorsque le curseur atteint la
fin du jeu des résultats, cette fonction renvoie NULL.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête : affichage

 mysqli_fetch_array: Elle prend en argument un paramètre obligatoire, le jeu


de résultats, et un paramètre facultatif: le type de tableau à retourner. Ce
deuxième argument lui permet de simuler les deux fonctions précédentes. En
effet, cette fonction renvoie la ligne courante du jeu de résultats sous la forme
d’un tableau associatif (deuxième argument à MYSQL_ASSOC), d'un tableau
indexé (deuxième argument à MYSQL_NUM), ou les deux (deuxième
argument MYSQL_BOTH). Le curseur est ensuite positionné à la ligne
suivante. Lorsque le deuxième paramètre n’est pas spécifié, il est égal par
défaut à MYSQL_BOTH. Lorsque le curseur atteint la fin du jeu des résultats,
cette fonction renvoie NULL.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête : affichage

- mysqli_fetch_object. Elle prend en argument le jeu de résultats et retourne une


ligne de résultat sous la forme d'un objet dont les attributs sont les colonnes du
résultat. Après la récupération, elle positionne le curseur sur la ligne suivante.
Lorsque le curseur atteint la fin du jeu des résultats, cette fonction renvoie NULL.
 mysqli_data_seek. Cette fonction permet de positionner le curseur sur une
ligne du jeu de résultats. Elle prend en argument le numéro de la ligne où nous
voulons nous positionner. Ce numéro est compris entre 0 (première ligne) et
myslqi_num_rows – 1 (dernière ligne). Un appel aux fonctions précédentes
(mysqli_fetch_...) après, permet de récupérer la ligne courante. Cette fonction
renvoie TRUE ou FALSE selon que le positionnement a réussi ou non.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête : affichage
Mysqli_fetch_row
<?php
$con=mysqli_connect("localhost","root","","web2") or die ("Erreur connexion " .
mysqli_connect_errno($con));
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=mysqli_query($con,$req1))
{
while($row=mysqli_fetch_row($result))
{
echo $row[0] ." ".$row[1]." ".$row[2]." ".$row[2]."<br/>";
}
}
else
{
echo "aucun enregistrement";
}
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysqli
Lancement d'une requête : affichage
Mysqli_fetch_assoc
<?php
$con=mysqli_connect("localhost","root","","web2") or die ("Erreur connexion " .
mysqli_connect_errno($con));
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=mysqli_query($con,$req1))
{
while($row=mysqli_fetch_assoc($result))
{
echo $row['prenom'] ." ".$row['nom']." ".$row['adresse']." ".$row['telephone']."<br/>";
}
}
else
{
echo "aucun enregistrement";
}
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysqli
Lancement d'une requête : affichage
Mysqli_fetch_array
<?php
$con=mysqli_connect("localhost","root","","web2") or die ("Erreur connexion " .
mysqli_connect_errno($con));
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=mysqli_query($con,$req1))
{
while($row=mysqli_fetch_array($result))
{
echo $row['0'] ." ".$row['nom']." ".$row['2']." ".$row['telephone']."<br/>";
}
}
else
{
echo "aucun enregistrement";
}
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysqli
Lancement d'une requête : affichage

Version orientée objet

 fetch_row est une méthode qui ne prend aucun argument et permet de


récupérer la ligne courante du jeu de résultats sous la forme d’un tableau
indexé. Après la récupération, elle positionne le curseur sur la ligne suivante.
Lorsque le curseur atteint la fin du jeu des résultats, la méthode renvoie NULL.
Elle est appelée à l’aide d’un objet « résultat » renvoyé par la méthode query.
 fetch_assoc. Cette méthode ne prend aucun argument et permet de récupérer la
ligne courante du jeu de résultats sous la forme d’un tableau associatif. Les
noms des colonnes du résultat sont les index du tableau. Elle positionne ensuite
le curseur sur la ligne suivante. Lorsque le curseur atteint la fin du jeu des
résultats, cette fonction renvoie NULL. Elle est appelée à l’aide d’un objet «
résultat » renvoyé par la méthode query.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête : affichage

 fetch_array. Elle prend en argument un paramètre facultatif: le type de tableau


à retourner. Cet argument lui permet de simuler les deux méthodes précédentes.
En effet, cette méthode peut renvoyer la ligne courante du jeu de résultats sous
la forme d’un tableau associatif (argument à MYSQLI_ASSOC), d'un tableau
indexé (argument à MYSQLI_NUM), ou les deux (argument
MYSQLI_BOTH). Le curseur est ensuite positionné à la ligne suivante. Cette
méthode renvoie null lorsque le curseur est à la fin du jeu de résultats. Lorsque
aucun paramètre n’est spécifié, il est égal par défaut à MYSQLI_BOTH.
 fetch_object. Elle ne prend aucun argument obligatoire et retourne une ligne
de résultat sous la forme d'un objet dont les attributs sont les colonnes du
résultat. Après la récupération, elle positionne le curseur sur la ligne suivante.
Lorsque le curseur atteint la fin du jeu des résultats, cette méthode renvoie
NULL.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête : affichage

 data_seek. Cette méthode permet de positionner le curseur sur une ligne du jeu
de résultats. Elle prend en argument le numéro de la ligne où nous voulons
nous positionner. Ce numéro est compris entre 0 (première ligne) et num_row –
1 (dernière ligne). Un appel aux méthodes précédentes (fetch_...) permet de
récupérer la ligne courante. Cette méthode renvoie TRUE ou FALSE selon que
le positionnement a réussi ou non.

Année académique : 2017-2018 : [Link]@[Link]


L’extension standard mysqli
Lancement d'une requête : affichage
fetch_row
<?php
$con=@new mysqli("localhost","root","","web2");
if($con->connect_errno)
die("Erreur code ". $con->connect_errno. ":". $con->connect_errno);
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
while($row=$result->fetch_row())
{
echo $row['0'] ." ".$row['1']." ".$row['2']." ".$row['3']."<br/>";
}
}
else
{
echo "aucun enregistrement";
}
Année académique : 2017-2018 : [Link]@[Link]
?>
L’extension standard mysqli
Lancement d'une requête : affichage
fetch_assoc
<?php
$con=@new mysqli("localhost","root","","web2");
if($con->connect_errno) die("Erreur code ". $con->connect_errno. ":". $con->connect_errno);
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
while($row=$result->fetch_assoc())
{
echo $row['prenom'] ." ".$row['nom']." ".$row['adresse']." ".$row['telephone']."<br/>";
}
}
else
{
echo "aucun enregistrement";
}
?>
Année académique : 2017-2018 : [Link]@[Link]
L’extension standard mysqli
Lancement d'une requête : affichage
fetch_array
<?php
$con=@new mysqli("localhost","root","","web2");
if($con->connect_errno) die("Erreur code ". $con->connect_errno. ":". $con->connect_errno);
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
while($row=$result->fetch_array())
{
echo $row['0'] ." ".$row['nom']." ".$row['2']." ".$row['telephone']."<br/>";
}
}
else
{
echo "aucun enregistrement";
}
?>
Année académique : 2017-2018 : [Link]@[Link]
API PDO

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
PDO est uniquement disponible en version orientée objet. Comme pour la version
objet de mysqli, la connexion consiste à créer un objet de la classe PDO
représentant la connexion. Le constructeur de PDO dispose de trois arguments
dont un qui est obligatoire :
 le DSN (Data Source Name ou le nom de source de donnée) qui décrit la
connexion à la source de données,
 En cas d’erreur, une exception PDOException est lancée et peut être attrapée à
l’aide d’un bloc try ... catch. La méthode getMessage permet d’afficher le
message d’erreur correspondant.

Année académique : 2017-2018 : [Link]@[Link]


Le PDO

Connexion à la base de données

<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root',' ');
echo "connexion reussie";
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>

Année académique : 2017-2018 : [Link]@[Link]


Le PDO

Connexion à la base de données


<?php
define('USER',"root");
define('PASSWD',"");
define('SERVER',"localhost");
define('BASE',"web2");
try
{
$dsn="mysql:dbname=".BASE.";host=".SERVER;
$connexion=new PDO($dsn,USER,PASSWD);
echo "connexion reussie";
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?> Année académique : 2017-2018 : [Link]@[Link]
Le PDO

Lancement d’une requête avec PDO

Le lancement d’une requête avec PDO se fait essentiellement en utilisant une des
deux méthodes query ou exec d’un objet PDO obtenu lors de l’étape de
connexion.
 query est une méthode pour exécuter une requête sur la base de données. Elle
est appelée à l’aide d’un objet PDO. Elle prend un argument obligatoire qui est
la requête à exécuter. La méthode query retourne soit :
• FALSE en cas d'échec comme lors d’une erreur de syntaxe, d’un problème
d’autorisation,
• Un objet PDOStatement qui constitue le jeu de résultat

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Lancement d’une requête avec PDO

 exec permet d’exécuter une requête sur une base de données. Elle est appelée
comme pour query à l’aide d’un objet PDO. Elle prend comme seul argument
obligatoire la requête à exécuter. La méthode exec retourne soit :
• FALSE en cas d’échec (erreur de syntaxe, problème de droits, ...)
• Un nombre entier représentant le nombre d’enregistrements affectés par la
requête.
 rowCount permet de renvoyer le nombre de lignes d’un jeu de résultat. Elle est
appelée à l’aide d’un objet PDOStatement renvoyé par la méthode query. Cette
méthode ne fonctionne pas correctement avec tous les serveurs de base de
données.

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Lancement d’une requête avec PDO

Remarques
La méthode exec est utilisée pour les requêtes de type insert, delete, update, ... qui
ne renvoient pas de jeu de résultats. La fonction query est utile pour les requêtes
de type select qui renvoient un jeu de résultat.

La méthode exec peut renvoyer FALSE en cas d’erreur et 0 lorsque aucun


enregistrement n’est affecté par la requête. Il est important de différentier les deux
cas notamment à l’aide de les opérateurs = = = et != =.

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Lancement d’une requête avec PDO

<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root','');
echo "connexion reussie";
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
echo "Nous avons " .$result->rowCount(). "enregistrement";
}
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>
Année académique : 2017-2018 : [Link]@[Link]
Le PDO
Lancement d’une requête avec PDO: affichage

La méthode query de PDO renvoie un jeu de résultat sur lequel il est possible
d’itérer directement comme pour un tableau associatif dont les index sont les
colonnes du résultat. A coté de cette utilisation directe, il est possible d’utiliser des
fonctions similaires aux « fetch... » de mysqli.
 fetch. Elle prend en argument un paramètre facultatif: le style de tableau à
retourner. Selon la valeur de cet argument, cette méthode renvoie la ligne
courante du jeu de résultats sous la forme d’un tableau associatif (argument à
FETCH_ASSOC), d'un tableau indexé (argument à FETCH_NUM), les deux
(argument FETCH_BOTH), un objet (argument FETCH_OBJECT). Le
curseur est ensuite positionné à la ligne suivante. Cette méthode renvoie null
lorsque le curseur est à la fin du jeu de résultats. Lorsque aucun paramètre n’est
spécifié, il est égal par défaut à FETCH_BOTH.

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Lancement d’une requête avec PDO: affichage

 fetch_object. Elle est une alternative à la méthode fetch avec l’argument


FETCH_OBJECT. Elle ne prend aucun argument obligatoire et retourne une
ligne de résultat sous la forme d'un objet dont les attributs sont les colonnes du
résultat. Après la récupération, elle positionne le curseur sur la ligne suivante.
Lorsque le curseur atteint la fin du jeu des résultats, cette méthode renvoie
NULL.

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Lancement d’une requête avec PDO: affichage avec FETCH_NUM
<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root','');
echo "connexion reussie";
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
echo "Nous avons " .$result->rowCount(). "enregistrement <br/>";
while($donnee=$result->fetch(PDO::FETCH_NUM))
{
echo $donnee[0] ." ". $donnee[1] ." ". $donnee[2] ." ". $donnee[3]. "<br/>";
}
}
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>
Année académique : 2017-2018 : [Link]@[Link]
Le PDO
Lancement d’une requête avec PDO: affichage avec FETCH_ASSOC
<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root','');
echo "connexion reussie";
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
echo "Nous avons " .$result->rowCount(). "enregistrement <br/>";
while($donnee=$result->fetch(PDO::FETCH_ASSOC))
{
echo $donnee['prenom'] ." ". $donnee['nom'] ." ". $donnee['adresse'] ." ". $donnee['telephone']. "<br/>";
}
}
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>
Année académique : 2017-2018 : [Link]@[Link]
Le PDO
Lancement d’une requête avec PDO: affichage avec FETCH_OBJ
<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root','');
echo "connexion reussie";
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
echo "Nous avons " .$result->rowCount(). "enregistrement <br/>";
while($donnee=$result->fetch(PDO::FETCH_OBJ))
{
echo $donnee->prenom ." ". $donnee->nom ." ". $donnee->adresse ." ". $donnee->telephone. "<br/>";
}
}
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>
Année académique : 2017-2018 : [Link]@[Link]
Le PDO
Lancement d’une requête avec PDO: affichage avec fetchObject()
<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root','');
echo "connexion reussie";
$req1="select prenom,nom,adresse,telephone from etudiant";
if($result=$con->query($req1))
{
echo "Nous avons " .$result->rowCount(). "enregistrement <br/>";
while($donnee=$result->fetchObject())
{
echo $donnee->prenom ." ". $donnee->nom ." ". $donnee->adresse ." ". $donnee->telephone. "<br/>";
}
}
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>
Année académique : 2017-2018 : [Link]@[Link]
Le PDO
Lancement d’une requête avec PDO: suppression d’un enregistrement
<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root','');
echo "connexion reussie";
$req1="delete from etudiant where id_etudiant=1";
if($con->exec($req1)!== false)
{
echo "suppression bien effectuée";
}
else
{
echo "échec de suppression";
}

}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
Année académique : 2017-2018 : [Link]@[Link]
?>
Le PDO
Fermeture de la connexion

La fermeture de la connexion consiste à détruire l’instance de la classe PDO. Cela peut


se faire en assignant à cette instance la valeur null.

<?php
try
{
$con=new PDO('mysql:host=localhost;dbname=web2','root','');
$con=null;
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Enregistrement de données

Utilisons cette requête SQL au sein d'un script PHP. Cette fois, au lieu de faire
appel à query() (que l'on utilisait dans le chapitre précédent pour récupérer des
données), on va utiliser exec() qui est prévue pour exécuter des modifications
sur la base de données :

<?php
try
{
include("[Link]");
$con->exec("insert into etudiant(prenom,nom,adresse,telephone)
values('issa','ka','linguere','777854112')");
echo 'Enregistrement effectue !';
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>
Année académique : 2017-2018 : [Link]@[Link]
Le PDO
Enregistrement de données

Insertion de données variables grâce à une requête préparée


Prépare une requête SQL à être exécutée par la méthode
PDOStatement::execute(). La requête SQL peut contenir zéro ou plusieurs noms
(:nom) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées
lorsque la requête sera exécutée. Vous ne pouvez pas utiliser les marqueurs
nommés et les marqueurs interrogatifs dans une même requête SQL ; choisissez
l'un ou l'autre. Utilisez ces paramètres pour lier les entrées utilisateurs, ne les
incluez pas directement dans la requête.

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Enregistrement de données

<?php
try
{
include("[Link]");
$req = $con->prepare("insert into etudiant(prenom,nom,adresse,telephone)
VALUES(:prenom, :nom, :adresse, :telephone)");
$req->execute(array(
'prenom' => 'Daouda', 'nom' => 'Sarr', 'adresse' => 'Saint-Louis',
'telephone' => '774522110'
));
echo 'Enregistrement effectue !';
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Modification de données
<?php
try
{
include("[Link]");
$con->exec("update etudiant set prenom='Bole', nom='Diop',adresse='Sokone'
where prenom='Birane'");
echo 'modification effectuee !';
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}
?>

Année académique : 2017-2018 : [Link]@[Link]


Le PDO
Modification de données avec prepare
<?php
try
{
include("[Link]");
$req=$con->prepare("update etudiant set prenom=:prenom, nom=:nom
where prenom='Saliou'");
$req->execute(array(
'prenom' => 'Baba',
'nom' => 'Mbaye'
));
}
catch(PDOException $e)
{
die("Erreur : " . $e->getMessage());
}

?>

Année académique : 2017-2018 : [Link]@[Link]


Le modèle MVC

Année académique : 2017-2018 : [Link]@[Link]

Vous aimerez peut-être aussi