Technologie Web Avancée
PHP/MYSQL
Le contenu de ce document est soumis à la Licence de Documentation Libre (GNU Free
Documentation License).
Dr. Kadar
1
Plan du Chapitre
1. PHP
2. MYSQL
3. PHP/MYSQL
Dr. Kadar 2
Technologie Web Avancée
PARTIE 1 : PHP
Le contenu de ce document est soumis à la Licence de Documentation Libre (GNU Free
Documentation License).
Dr. Kadar
3
Plan du Chapitre
1. Introduction
2. Variable
3. Operateur
4. Affichage
5. Commentaire
6. Structure de Contrôle
7. Tableau
8. Fonction
9. Inclusion
10. Redirection
Dr. Kadar 4
INTRODUCTION
PHP est un langage de programmation qui s'intègre dans vos pages HTML. Il
permet entre autres de rendre automatiques des tâches répétitives, notamment
grâce à la communication avec une base de données (utilisation la plus courante de
PHP).
Intégration d’un script dans une page :
❖ Les pages web sont au format HTML. Les pages web dynamiques générées
avec PHP sont au format PHP. Le code source PHP est directement insérer
dans le fichier html entre cette syntaxe :
<?php … ?>
1. Variables
▪Les identificateurs de variable sont précédés du symbole « $ ».
Exemple : $toto.
Dr. Kadar 5
2. TYPE D’ ENTIER
▪ Les variables peuvent être de type entier (integer), réel (double), chaîne de
caractères (string), tableau (array), objet (object), booléen (boolean).
2.1 Constant
L’utilisateur peut définir des constantes dont la valeur est fixée une fois pour toute.
Les constantes ne portent pas le symbole $ (dollars) en début d’identificateur et
ne sont pas modifiables.
define(‘’var’’,valeur) : définit la constante var (sans $) de valeur valeur
Exemple :
define(’’author’’,’’Djama’’);
echo author;
// affiche Djama
Dr. Kadar 6
3. OPERATEUR
Opérateurs arithmétiques :
+ (addition), - (soustraction), * (multiplié), / (divisé), % (modulo), ++ (incrément), --
(décrément). Ces deux derniers peuvent être pré ou post fixés
Opérateurs d’assignement :
= (affectation), *= ($x*=$y équivalent à $x=$x*$y), /=, +=, -=, %=
Opérateurs logiques :
and, && (et), or, || (ou), xor (ou exclusif), ! (non)
Opérateurs de comparaison :
== (égalité), < (inférieur strict), <= (inférieur large), >, >=, != (différence)
Opérateurs de concaténation :
4. Affichage
Les fonctions d’affichage :
echo() : écriture dans le navigateur ou print() : écriture dans le navigateur
Exemple :
<?php echo 'Bonjour le monde !' ; ?> ou < ?php print 'Bonjour le monde !' ; ?>
Dr. Kadar 7
5. Commentaire
Comme dans tout autre langage de programmation, PHP dispose sa propre
syntaxe de commentaires.
Les commentaires permettent de bien expliquer une partie du code afin qu’on
puisse déchiffrer en cas de maintenance ou de travail collaboratif (plusieurs
développeurs travaillant sur le même programme).
Il existe deux sortes de commentaire. Le commentaire sur une seule ligne et le
commentaire multilignes.
Une seule ligne Multilignes
<?php <?php
// Ceci est un premier commentaire sur une ligne /*
echo 'Hello World !'; Ce programme a été écrit par Dr.
?> Kadar
Il affiche la chaîne 'Hello Word !' à
l'écran
*/
echo 'Hello World !';
?>
Dr. Kadar 8
6. STRUCTURE DE CONTROLE (1/2)
o Structures conditionnelles
switch(expression) {
if(condition1) { case resultat1 :
# instructions à exécuter si la
condition1 est vraie... # instructions à exécuter si
l’expression vaut resultat1...
} elseif (condition2) { break ;
instructions à exécuter si la
condition2 est vraie... case resultat2 :
} elseif (condition3) {
# instructions à exécuter si
instructions à exécuter si la l’expression vaut resultat2...
condition3 est vraie... break ;
…………
} else {
instructions à exécuter si
aucune des conditions n’est default :
vraie...
# instructions à exécuter en
} dernier recours...
Dr. Kadar } 9
6. STRUCTURE DE CONTROLE (2/2)
o Structures de boucles
for(expression1 ; condition ; expression2) { do {
# instructions à exécuter tant que la condition est # instructions à exécuter tant que
vraie... la condition est vraie...
}
Exemple : compter jusqu’à 10 } while(condition);
for ($i = 1 ; $i <= 10 ; $i++) {
echo "$i " ;
Exemple : compter jusqu’à 10
}
$i = 1 ;
Affiche 1 2 3 4 5 6 7 8 9 10. do {
echo "$i " ;
While (condition){ $i++ ;
# instructions à exécuter tant que la condition est } while ($i <= 10) ;
vraie...
} Affiche 1 2 3 4 5 6 7 8 9 10.
Exemple : compter jusqu’à 10
$i = 1 ;
while ($i <= 10) {
echo "$i " ;
$i++ ;
}
Affiche 1 2 3 4 5 6 7 8 9 10.
Dr. Kadar 10
7. TABLEAU (1/2)
Une variable tableau est de type array. Un tableau accepte des éléments de tout type.
Exemple :
$tableau_couleur = array(‘rouge’, ’jaune’, ’bleu’, ‘vert’);
Indice initiale d’un tableau est 0
Parcours d’un tableau :
Exemple 1 :
$i=0;
while($i <count($tableau_couleur)) {// count() retourne le nombre d’éléments
echo $tableau_couleur[$i].’\n’;
$i++;
}
Exemple 2 :
foreach($tableau_couleur as $i) {
echo $i.’’\n’’;
}
La variable $i prend pour valeurs successives tous les éléments du tableau $tableau_couleur.
Dr. Kadar 11
7. TABLEAU (2/2)
Quelques fonctions utiles:
count($tab) : retournent le nombre d’éléments du tableau
foreach($tab as $elem): permet a la variable $elem de
prendre pour valeurs successives tous les éléments du tableau
$tab.
in_array($var,$tab) : dit si la valeur de $var existe dans le
tableau $tab
sort($tab) : trie alphanumérique les éléments du tableau
strlen($tab) : Calcule la taille d'une chaîne
empty($tab) : Détermine si une variable est vide ou non
Dr. Kadar 12
8. FONCTION
Les fonctions peuvent prendre des arguments dont il n’est pas besoin de
spécifier le type. Elles peuvent de façon optionnelle retourner une valeur.
Exemple :
<?php function CalculSomme($ a, $ b)
{ // Déclaration de la variable locale
$somme = $a + $b;
return $somme;
}
// Affichage du résultat
echo CalculSomme($ a, $ b);
?>
CalculSomme(8,10);
Dr. Kadar 13
9. INCLUSION
On peut inclure dans un script php le contenu
d’un autre fichier.
include évalue et insert à chaque appel (même dans
une boucle) le contenu du fichier passé en argument.
Exemple :
include(‘’[Link]’’);
require insert dans le code le contenu du fichier
spécifié même si ce n’est pas du code php. Est
équivalent au préprocesseur #include du C.
Exemple :
require(‘’[Link]’’);
Dr. Kadar 14
10. REDIRECTION
• <?php
header(‘’Location: [Link]’’);
exit();
• ?>
Ce script effectue une redirection vers une autre
page. C’est-à-dire que le navigateur du client en
voyant cet entête Location va charger directement
la page indiquée sans regarder la suite du script.
La fonction exit est là pour parer au cas
impossible où le script continuerait son exécution.
Dr. Kadar 15
Technologie Web Avancée
Partie 2 : MYSQL
Le contenu de ce document est soumis à la Licence de Documentation Libre (GNU Free
Documentation License).
Dr. Kadar 16
Plan du Chapitre
1. Présentation
2. Création/sélection d’une base de données
3. Gestion de la base de données
4. Affichage d’une table
Dr. Kadar 17
INTRODUCTION
MySQL est une base de données implémentant le
langage de requête SQL un langage relationnel très
connu.
Il existe un outil libre et gratuit développé par la
communauté des programmeurs libres : phpMyAdmin
qui permet l’administration aisée des bases de données
MySQL avec php. Il est disponible sur :
[Link] et
[Link]
Dr. Kadar 18
Dr. Kadar
1. Presentation
L’outil phpMyAdmin est développé en
PHP et offre une interface intuitive
pour l’administration des base de
données du serveur.
Cet outil permet de :
❑ créer de nouvelles bases
❑ créer/modifier/supprimer des tables
❑ afficher/ajouter/modifier/supprimer
des tupes dans des tables
❑ effectuer des sauvegarde de la
structure et/ou des données
❑ effectuer n’importe quelle requête
❑ gérer les privilèges des utilisateurs
19
2. Création/sélection d’une base de données
Avant de manipuler des données, il faut créer une ou des bases
de données.
ETAPE 2 : sélectionnez le
nom de la base à
manipuler (le nombre de ETAPE 1 : Écrivez le nom de
tables de la base apparaît la base de donnée à créer.
entre parenthèses) Puis cliquez sur « Créer »
Dr. Kadar 20
3. Gestion de la base de données
Choix d’une table à
gérer en particulier
Écrire une requête
MySQL à exécuter
Actions sur les tables : afficher
leur contenu intégral, faire une
sélection sur critères, ajouter des
données, gérer ses propriété
Exécuter une requête
intrinsèques, supprimer, vider.
MySQL contenue
Dr. Kadar
dans un fichier 21
4. Affichage d’une table
Rappel de la base, de
Rappel de la requête la table et du serveur
Colonnes = noms
des attributs de la
table
Liste des
enregistrements de la
table par pages de X
lignes
Supprimer un enregistrement
Accès au formulaire de modification Permet de naviguer dans
d’un enregistrement les pages de résultats
Insertion d’un nouvel Afficher par page de X lignes
enregistrement
Dr. Kadar 22
Technologie Web Avancée
Partie 3 : PHP/MYSQL
Le contenu de ce document est soumis à la Licence de Documentation Libre (GNU Free
Documentation License).
Dr. Kadar 23
AJOUT DE DONNEES
Dr. Kadar 24
Plan du Chapitre
1. Connexion
2. Récuperation de données
3. Création de la requête
Dr. Kadar 25
1. CONNEXION
Pour se connecter à une base depuis PHP, il faut spécifier un
nom de serveur, un nom d’utilisateur, un mot de passe et un
nom de base de données.
La fonction de connexion mysqli_connect ($serveur,
$utilisateur, $motdepasse, $basedonnee) permet d’établir une
connexion à un serveur MySQL.
Code de connexion est :
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
$connexion=mysqli_connect($serveur,$utilisateur
,$motdepasse,$basedonnee);
Dr. Kadar 26
2. Récuperation de données
/* récupération des données envoyés par le formulaire */
$numerofiliere = $_POST["numerofiliere"];
$nomfiliere = $_POST["nomfiliere"];
3. Création de la requête
Pour envoyer des données dans une base de données, on utilise la fonction mysqli_query($connexion, $sql).
Cette fonction prend deux paramètres sous forme de chaînes de caractères :
•La première contient les informations de connexion à la base de données.
•La seconde contient une requête SQL.
Elle retourne un identificateur de résultat en cas de succès ou FALSE en cas d'échec
/* Création de la requête */
mysqli_query($connexion,"INSERT INTO filiere( num_filiere, nom_filiere)
VALUES ($numerofiliere,'$nomfiliere')");
?>
Dr. Kadar 27
CODE COMPLET AJOUT
<?php
/* connexion */
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
$connexion=mysqli_connect($serveur,$utilisateur,$motdepasse,$basedonnee);
/* récupération des données envoyés par le formulaire */
$numerofiliere = $_POST["numerofiliere"];
$nomfiliere = $_POST["nomfiliere"];
/* Création de la requête */
mysqli_query($connexion,"INSERT INTO filiere( num_filiere, nom_filiere)
VALUES ($numerofiliere,'$nomfiliere')");
?> Dr. Kadar 28
SUPPRESSION DE DONNEES
Dr. Kadar 29
Plan du Chapitre
1. Connexion
2. Récuperation de données
3. Création de la requête
Dr. Kadar 30
1. CONNEXION
Code de connexion est :
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
$connexion=mysqli_connect($serveur,$utilisateur
,$motdepasse,$basedonnee);
Dr. Kadar 31
2. Récuperation de données
/* récupération des données envoyés par le formulaire */
$nomfiliere = $_POST["nomfiliere"];
3. Création de la requête
/* Création de la requête */
mysqli_query($connexion,"delete from filiere where
nom_filiere='$nomfiliere'");
?>
Dr. Kadar 32
CODE COMPLET SUPPRESSION
<?php
/* connexion */
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
$connexion=mysqli_connect($serveur,$utilisateur,$motdepasse,$basedonnee);
/* récupération des données envoyés par le formulaire */
$nomfiliere = $_POST["nomfiliere"];
/* Création de la requête */
mysqli_query($connexion,"delete from filiere where
nom_filiere='$nomfiliere'");
?>
Dr. Kadar 33
AFFICHAGE DE DONNEES
Dr. Kadar 34
Plan du Chapitre
1. Connexion
2. Création de la requête
3. Parcours de la requête
4. Affichage de la requête
Dr. Kadar 35
1. CONNEXION
Code de connexion est :
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
$connexion=mysqli_connect($serveur,$utilisateur
,$motdepasse,$basedonnee);
Dr. Kadar 36
2. Création de la requête
/* Création de la requête */
$result = mysqli_query($connexion, "SELECT * FROM filiere ");
3. Parcours de la requête
▪ Pour récupérer des données à partir d’ une base de données, il existe la fonction
mysql_fetch_row($result) qui retourne une ligne de résultat sous la forme d’un tableau. Les
éléments du tableau étant les valeurs des attributs de la ligne. Retourne FALSE s’il n’y a plus
aucune ligne.
/* Parcours de la requête */
while($ligne = mysql_fetch_row($result)) {
$numerofiliere = $ligne[0];
$nomfiliere= $ligne[1];
4. Création de la requête
/* affichage de la requête */
echo "$numero_filiere, $nom_filiere <br />"; }
?>
Ici, on accède aux valeurs de la ligne par leur indice dans le tableau.
Dr. Kadar 37
CODE COMPLET AFFICHAGE
<?php
/* connexion */
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
$connexion=mysqli_connect($serveur,$utilisateur ,$motdepasse,$basedonnee);
/* Création de la requête */
$resultat = mysql_query($connexion, "select * from filiere");
/* Parcours de la requête */
while($ligne = mysql_fetch_row($resultat)) {
$numerofiliere = $ligne[0];
$nomfiliere= $ligne[1];
/* affichage de la requête */
echo "$numerofiliere, $nomfiliere <br />";
}
?> Dr. Kadar 38
RECHERCHE DE DONNEES
Dr. Kadar 39
Plan du Chapitre
1. Connexion
2. Récupération de données
3. Création de la requête
4. Parcours de la requête
5. Affichage de la requête
Dr. Kadar 40
1. CONNEXION
Code de connexion est :
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
$connexion=mysqli_connect($serveur,$utilisateur
,$motdepasse,$basedonnee);
Dr. Kadar 41
2. Récupération de données
$nomfiliere = $_POST["nomfiliere"];
3. Création de la requête
/* Création de la requête */
$result = mysqli_query($connexion, "SELECT *
from filiere where nom_filiere=‘$nomfiliere‘");
4. Parcours de la requête
/* Parcours de la requête */
while($ligne = mysql_fetch_row($result)) {
$numerofiliere = $ligne[0];
$nomfiliere= $ligne[1];
5. Création de la requête
/* affichage de la requête */
echo "$numero_filiere, $nom_filiere <br />"; }
?>
Dr. Kadar 42
CODE COMPLET RECHERCHE
<?php
/* connexion */
$serveur = "localhost";
$utilisateur = "root";
$motdepasse = "";
$basedonnee = "gestion_etudiant";
connexion=mysqli_connect($serveur,$utilisateur ,$motdepasse,$basedonnee);
/* recuperation de donnees*/
$nomfiliere = $_POST["nomfiliere"];
/* Création de la requête */
$resultat = mysql_query(connexion, "select * from filiere");
/* Parcours de la requête */
while($ligne = mysql_fetch_row($resultat)) {
$numero_filiere = $ligne[0];
$nom_filiere= $ligne[1];
/* affichage de la requête */
echo "$numero_filiere, $nom_filiere <br />";
}
?>
Dr. Kadar 43
Session
Une session est un mécanisme technique permettant de
sauvegarder temporairement sur le serveur des informations
relatives à un internaute.
La sécurité et l'intégrité des données sont améliorées tout au
long de la session.
Contrairement à une base de données ou un système de fichiers,
la session conserve les informations pendant quelques minutes.
Les sessions sont particulièrement utilisées pour ce type
d'applications :
Les espaces membres et accès sécurisés avec authentification.
Gestion d'un caddie sur un site de vente en ligne.
Dr. Kadar 44
Pour utiliser les sessions, différentes fonctions PHP s'offrent à nous. Voici
déjà un petit tableau vous permettant de vous familiariser avec ces
différentes fonctions (que nous détaillerons bien sur dans la suite de ce
tutorial):
Fonction Signification
session_start Démarre une session
Enregistre une variable de
session_register
session
session_unregister Efface une variable de session
Retourne l'id de la session en
session_id
cours
Retourne le nom de la session
session_name
en cours
Detruit toutes les variables de
session_unset
la session en cours
session_destroy Destruit la session en cours
Dr. Kadar 45
Exemple d’Application
Etape 1: Connexion
Dr. Kadar 46
Etape 1: Connexion
// on démarre la session
session_start ();
// on enregistre les paramètres de visiteur comme
variables de session ($login et $pwd) (notez bien que
l'on utilise pas le $ pour enregistrer ces variables)
$_SESSION['login'] = $_POST['nom'];
$_SESSION['pwd'] = $_POST['password'];
// on redirige le visiteur vers une page du section
membre
header("Location: [Link]");
Dr. Kadar 47
Etape 2: Menu General
Dr. Kadar 48
Etape 2: Menu General
// On démarre la session (ceci est indispensable dans toutes
les pages de notre section membre)
session_start ();
echo ‘
// On récupère nos variables de session
Votre login est '.$_SESSION['login']. '
Dr. Kadar 49
Etape 3: DECONNEXION
<?php
// On démarre la session
session_start ();
// On détruit les variables de notre session
session_unset ();
// On détruit notre session
session_destroy ();
// On redirige le visiteur vers la page d'accueil
header ('location: [Link]');
?>
Dr. Kadar 50