2
Modèle
Client
Base de
données
MySQL
Se
rve
ur
internet
requête
réponse
• Créé en 1994 par Rasmus Lerdorf pour les besoins des pages web personnelles (livre d’or, compteurs, etc.). A l’époque, PHP signifiait
Personnal Home Page.
• Il supporte tous les standards du web, gratuit et libre « Open Source » • Il existe par ailleurs des applications web prêtes à l’emploi (PHPNuke,
PHP SPIP, PHPSlash…) permettant de monter facilement et gratuitement son portail.
• Les serveurs d’application les plus utilisés pour développer des sites web dynamique en PHP :
– EasyPHP – WAMP – XAMPP – ….
4
Intégration d’un script dans une page
• Les pages web au niveau client ‘Réponse’ sont au format HTML. • Les pages Web PHP ont l’extension .php
• Les instructions se terminent avec un point virgule
• Les pages web dynamiques PHP doivent avoir la structure :
Exemple : <html> <body> <?php Scripts PHP ?> </body> </html>
Autres syntaxes d’intégration :
<? … ?>
<script language="php"> Votre script
Commentaires
Un script php se commente comme en C :
Exemple :
<?php
// commentaire de fin de ligne
/* commentaire sur plusieurs lignes
*/
?>
Tout ce qui se trouve dans un commentaire est ignoré. Il est conseillé de commenter largement les scripts.
6
Affichage
Les fonctions d’affichage :
echo() : écriture dans le navigateur print() : écriture dans le navigateur
Exemples :
echo "Bonjour";
Variables
• Le typage des variables est implicite en php. Il n’est donc pas
nécessaire de déclarer leur type au préalable ni même de les
initialiser avant leur utilisation.
• Les identificateurs de variable sont précédés du symbole
« $ »
(dollars). Exemple : $toto.
• Il est possible de convertir une variable en un type primitif grâce
au cast
(1)(comme en C).
Exemple :
Exemple :
$str = "12";
// $str vaut la chaîne "12"
8
Variables
Quelques fonctions :
empty($var) : renvoie vrai si la variable est vide
isset($var) : renvoie vrai si la variable existe
unset($var) : détruit une variable
gettype($var) : retourne le type de la variable
settype($var, "type") : convertit la variable en type : is_long(),
is_double(), is_string(), is_array(), is_object(), is_bool(), is_float(), is_numeric(), is_integer(), is_int()…
Variables
• La portée d’une variable est limitée au bloc dans lequel elle a été
crée.
• Une variable locale à une fonction n’est pas connue dans le reste
du programme.
• Une variable du programme n’est pas connue dans une fonction.
• Une variable créée dans un bloc n’est pas connue dans les autres
blocs, mêmes supérieurs.
10
Constantes
•L’utilisateur peut définir des constantes dont la valeur est fixée une fois pour toute.
• Les constantes ne portent pas le symbole $ (dollars) et ne sont pas modifiables.
Syntaxe :
Syntaxe :
define("var",valeur) : définit la constante var (sans $) de valeur valeur
Exemple 1 :
define("author", "Test");
echo author; // affiche Test
Exemple 2 :
define("MY_YEAR", 1980);
Les opérateurs de calcul :
Signe Nom Signification Exemple Résultat
+ plus addition $x + 3 14
- moins soustraction $x - 3 8
* multiplié par multiplication $x*2 22
/ divisé par division $x /2 5.5
% modulo reste de la division
par
$x%5 1
= a la valeur affectation $x=5 5
12
Les opérateurs de comparaison :
Signe Nom Exemple
== égal $x==11 < inférieur $x<11 <= inférieur ou égal $x<=11 > supérieur $x>11 >= supérieur ou égal $x>=11 != différent $x!=11
Les opérateurs
Les opérateurs logiques :
Signe Nom Exemple Signification
&& et (condition1)&&(condition2) Condition1 et condition2
|| ou (condition1)||(condition2) condition1 ou condition2
Les opérateurs d’incrémentation :
Signe Description Exemple
14
Mathématiques
Quelques fonctions mathématiques :
abs($x) : valeur absolue de x
ceil($x) : arrondi supérieur
floor($x) : arrondi inférieur
pow($x,$y) : x exposant y
round($x,$i) : arrondi de x à la ième décimale
max($a, $b, $c …) : retourne l’argument de valeur maximum
pi() : retourne la valeur de Pi …..
Et aussi : cos, sin, tan, exp, log, min, pi, sqrt…
Quelques constantes :
M_PI : valeur de pi (3.14159265358979323846) M_E : valeur de e (2.7182818284590452354)
Mathématiques– Exemple
<html><body> <?php
$str = -12.1234;
$x =abs($str); // valeur absolue de str
$y = ceil($x); // arrondi supérieur
echo $x; echo "<br>"; echo $y; echo "<br>"; echo "Max : "; $a=1; $b=3; $c=6;
16
Chaînes de caractères
Opérateur de concaténation de chaînes :
.
(point)Exemple 1 :
$var1 = "Hello"; $var2 = "Word";
Chaînes de caractères
Affichage d’une chaîne avec la fonction echo() :
Exemples:
echo ‘Hello Word.’; echo "Hello $var";
echo "Nom : ". $name;
Quelques fonctions:
strlen($str) : retourne le nombre de caractères d’une chaîne
strtolower($str) : conversion en minuscules
strtoupper($str) : conversion en majuscules
trim($str) : suppression des espaces de début et de fin de chaîne
substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à la position $i
18
Chaînes de caractères
Quelques fonctions :
strpos()
Recherche la position du premier caractère trouvé. Retourne le nombre de caractères placés avant lui (ici 4). $res = strpos("abcdef","e");
Résultat : 4
ereg()
Recherche si une chaîne de caractère est contenue dans une autre (ex. recherche si "ABCDE" contient "BCD"). if(ereg("BCD","ABCDEF"))
{echo "oui";} else {echo "non";} Résultat : oui
str_replace()
Remplace un caractère par un autre dans une chaîne. Tiens compte de la casse. $res = str_replace("a","o","Lalala");
Résultat : Lololo
ucwords()
Met la première lettre de chaque mot d'une chaîne en Majuscule. $res = ucwords("salut le monde");
Chaînes de caractères - Exemple
<?php $name = " Patrice "; echo strlen($name) ; echo "<br>"; echo strtoupper($name); echo "<br>"; echo trim($name); print("<br>Bonjour $name"); ?>20
Structures de contrôle et d’itérations
Structures conditionnelles : if (Conditions) { // Instructions } elseif (Conditions) { // Instructions } else { // Instructions } switch ($valeur) { case 1: Instruction 1 … break; case 2: Instruction 2 … break; case 3: Instruction 3 … break; default:
Instruction par défaut }
Structures de contrôle et d’itérations
Structures de boucle (même syntaxe qu’en langage C) : for (initialisation;Condition;Modification) { // Instructions } while (Condtion) { // Instructions } do { // Instructions } while (Condition);
22
Structures de contrôle et d’itérations
• L’instruction
break
permet de quitter prématurément une boucle.
<?php
for($i=1; $i<=10; $i++) { if($i == 3) break; echo $i . "<br>"; } ?>
• L’instruction
continue
permet d’éviter les instructions suivantes de
l’itération courante de la boucle pour passer à la suivante.
Exemple :
Exemple :
<?php
for($i=1; $i<=10; $i++) {
if($i == 3)
continue; //l’itération de i=3 ne sera pas exécutée
echo $i . "<br>"; }
Inclusions
On peut inclure dans un script php le contenu d’un autre fichier.
require : insert dans le code le contenu du fichier spécifié même si ce n’est pas du code php.
Exemple :
Exemple :
require(‘’fichier.php’’);
include : évalue et insert à chaque appel le contenu du fichier passé en argument.
Exemple :
Exemple :
24
Arrêt prématuré
Pour stopper prématurément un script, il existe deux fonctions.
• die
: arrête un script et
affiche un message d’erreur
dans le
navigateur.
Exemple :
Exemple :
if(mysql_query($requette) == false)
die
(‘’Erreur de base de données à la requête : $requet’’);
• exit
: l’arrête aussi mais
sans afficher de message d’erreur
.
Exemple :
Exemple :
exit
();
Remarque :
Remarque :
Ces fonctions stoppent tout le script, pas seulement
le bloc en cours.
Fonctions
• Les fonctions peuvent prendre des arguments dont il n’est pas besoin de spécifier le type. Syntaxe : Syntaxe : <?php function mafonction($arg1,$arg2,$arg3,….) { // Votre Script } ?>
• L’appel de la fonction se fait avec son nom :
mafonction(par1,par2,par3,….);
• la commande return() termine immédiatement la fonction, et retourne l'argument qui lui est passé
Exemple
Exemple : : <?php
function mafonction($toto) { $toto += 15;
26
Fonctions
• Une fonction peut être définie après son appel (en PHP4 du fait de la compilation avant exécution contrairement au PHP3 qui est interprété).
Exemple :
Exemple :
Test(); // appel de la fonction Test pas encore définie
function Test() { // définition de la fonction Test
echo "Ceci est un test"; }
Tableaux
• Une variable tableau est de type array. Un tableau accepte des éléments de tout type.
• Les éléments d’un tableau peuvent être de types différents et sont séparés d’une virgule.
• Un tableau peut être initialisé avec la syntaxe array.
Syntaxe :
$NomTab = array("el1", "el2", "el3", ….);
Exemple :
$tab_colors = array("red", "yellow", "blue", "white"); $tab = array(‘A', 2002, 20.5, $name);
• Il peut aussi être initialisé au fur et à mesure.
Exemples :
$villes[0] = "Paris"; $villes[1] = "Londres"; $villes[2] = "Lisbonne";
28
Tableaux
Quelques fonctions:
• count($tab) et sizeof ($tab) : retournent le nombre d’éléments du tableau
• in_array($var,$tab) : vérifie si la valeur de $var existe dans le tableau $tab
• shuffle($tab) : mélange les éléments d’un tableau
• sort($tab) : trie alphanumérique les éléments du tableau
• rsort($tab) : trie alphanumérique inverse les éléments du tableau
• array_rand($tab) : retourne un élément du tableau au hasard
• unset($tab) : efface complètement le tableau
Tableaux
Exemple 1 : Parcours d’un tableau
Exemple 1 : Parcours d’un tableau
$tab = array("Hugo", "Jean", "Mario"); $i=0;
while($i< count($tab)) // count() retourne le nombre d’éléments
{ echo $tab[$i]; echo "<br>"; $i++; } Exemple 2: Exemple 2: <?php $tabnumbers = array(5, 2, 4, 1, 3); print_r($tabnumbers); echo"<br>"; sort($tabnumbers); print_r($tabnumbers);
30
Tableaux
foreach($NameTable as $value) {
Instructions }
La structure de contrôle foreach : permet de de parcourir un tableau
Explication :
Explication :
À chaque itération, la valeur de l'élément courant est assignée à $value et le pointeur interne de tableau est avancé d'un élément (ce qui fait qu'à la prochaine itération, on accédera à l'élément suivant).
Exemple :
Exemple : <?php
$tabnumbers = array(5, 2, 4, 1, 3); foreach ($tabnumbers as $test) {
echo $test."<br>\n"; }
Exemple
<html><head><title>Affichage du contenu d'un tableau </title> <?php $centres[0]="Rennes"; $centres[1]="Nantes"; $centres[2]="Caen"; $centres[3]="Lille"; $centres[4]="Strasbourg"; ?> </head><body>
<h3>Sans utiliser la boucle foreach :</h3> <?php echo $centres[0] ?><br>
<?php echo $centres[1] ?><br> <?php echo $centres[2] ?><br> <?php echo $centres[3] ?><br> <?php echo $centres[4] ?><br>
<h3>En utilisant la boucle foreach :</h3> <?php
32
Activités d’apprentissage
A1. Affecter respectivement les valeurs 0.206, 150 et 10 aux variables TVA, prix et Nombre.
Calculer le prix HT et le prix TTC pour les 10 articles et les afficher. On affichera également le type de chaque variable.
A2. Affecter respectivement les valeurs 150, 50 et 10 aux variables prix_table,prix_armoire et Nombre.
Calculer le prix HT total pour les 10 armoires.
Comparer le prix de l’armoire et de la table et afficher quel est le prix le plus élevé.
A3. Affecter une valeur à la variable nbre et afficher la somme des
entiers de 1 à nbre. Réalisera cet exercice avec l’instruction FOR puis avec l’instruction WHILE.
A4. Initialiser un tableau avec 4 nombres et en faire la somme. a) sans faire de fonction
b) en créant une fonction somme
Tableaux associatifs
• Un tableau associatif est appelé aussi dictionnaire ou hashtable.
• On associe à chacun de ses éléments une clé dont la valeur est de type chaîne de caractères.
• L’initialisation d’un tableau associatif est similaire à celle d’un tableau normal.
Syntaxe :
$NomTable = array("clé1" => "Val_1", …. , "clén" => "Val_n");
Exemple 1 :
$personne = array("Nom" => "César", "Prénom" => "Jules");
Exemple 2 :
34
Tableaux associatifs
Parcours d’un tableau associatif.
$personne =
array(
"Nom"
=>
"César"
,
"Prénom"
=>
"Jules"
)
;
Exemple 1 :
foreach(
$personne
as
$elem
)
{
echo $elem;
echo " <br> ";
}
Ici on accède directement aux éléments du tableau sans passer par
les clés.
Exemple 2 :
foreach(
$personne
as
$key
=>
$elem
)
{
echo "$key : $elem";
}
Tableaux associatifs
Quelques fonctions :
array_keys($tab) : retourne un tableau contenant les clés du tableau associatif $tab
array_values($tab) : retourne un tableau contenant les valeurs du tableau associatif $tab
Les tableaux associatifs permettent de préserver une structure de
données.
36
Tableaux associatifs
Quelques fonctions alternatives pour le parcours de tableaux (normaux ou associatifs) :
• reset($tab) : place le pointeur sur le premier élément
• current($tab) : retourne la valeur de l’élément courant
• next($tab) : place le pointeur sur l’élément suivant
• prev($tab) : place le pointeur sur l’élément précédant
• each($tab) : retourne la paire clé/valeur courante et avance le pointeur Exemple :
Exemple :
<?php
$colors = array("red", "green", "blue"); $nbr = count($colors);
reset($colors);
for($i=0; $i<$nbr; $i++) { echo current($colors); echo "<br>"; next($colors); } ?>
Récupération des données du formulaire
• La récupération des données saisies via un formulaire se fait grâce aux variables serveur :
$_POST["NomChampFormulaire"] : Avec la méthode d’envoi POST
$_GET["NomChampFormulaire "] : Avec la méthode d’envoi GET
• Exemple :
38
Passage de paramètres à un script – Méthode
POST
<html><body>
<form id="form1" name="form1" method="post" action="check.php">
Compte : <input name="txtcompte" type="text" /><br>
M.Pass : <input name="txtpasse" type="password" /><br>
<input type="submit" value="Envoyer"/> </form></body></html>
Form.php
<?php
$id = $_POST["txtcompte"]; $passe = $_POST["txtpasse"]; if($id=="" || $passe=="")
echo "Saisir tes données SVP!"; else
echo "Salut, $id"; ?>
Passage de paramètres à un script – Méthode
GET
<html><body>
<form id="form1" name="form1" method="get" action="check.php">
Compte : <input name="txtcompte" type="text" /><br>
M.Pass : <input name="txtpasse" type="password" /><br>
<input type="submit" value="Envoyer"/> </form></body></html>
Form1.php
<?php
$id = $_GET["txtcompte"]; $passe = $_GET["txtpasse"]; if($id=="" || $passe=="")
echo "Saisir tes données SVP!";
40
Passage de paramètres à un script – Méthode
GET
Les variables peuvent directement être passées par l’intermédiaire des URL.
Exemple :
<html><body> <?php
$id = 20;
echo "<a href=\"Acheter.php?action=buy&id=$id\">Acheter</a>"; ?>
</body></html>
Cet exemple va créer dans le script destination les variables globales $action et $id avec les valeurs respectives ‘’buy’’ et ‘’20’’.
<?php
$id = $_GET["id"];
$achat = $_GET["action"]; echo "Compte : $id";
echo "<br>";
echo "action : $achat"; ?>
Variables d’environnement
• PHP est doté d’une multitude de variables d’environnement
• Ces variables permettent au script d’accéder à des informations très utiles.
Quelques variables :
• HTTP_USER_AGENT : signature du navigateur du client
• REMOTE_ADDR : adresse IP du client
• HTTP_ACCEPT_LANGUAGE : la langue utilisée
• ….
• La récupération de ces variables se fait grâce à la fonction : getenv()
Exemple :
Exemple :
42
Afficher le contenu du tableau $HTTP_SERVER_VARS
Exemple :
<html>
<head>
<title>Affichage du tableau $HTTP_SERVER_VARS</title>
</head>
<body>
<?php
foreach(
$HTTP_SERVER_VARS
as $cle=>$valeur)
{
echo $cle," vaut : ",$valeur,"<br>\n";
}
?>
</body>
REDIRECTION
<?php
header
("Location: URL");
?>
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.
44
SESSION
• Chaque session est désignée par un nom et un identifiant.
• la session est détruite à la fermeture du navigateur, ou au bout de 30 mins.
session_start() ou session_register() : Permet de démarrer une session;
$_SESSION['variable'] = $valeur : crée une variable de session nommée variable qui vaut $valeur;
$_SESSION['variable'] : Utiliser une variable Session ; session_name() : retourne le nom de la session en cours session_id() : : retourne le code de la session en cours
unset($_SESSION['variable']) : Détruire une variable Session;
session_unset() : fonction permettant de détruire une variable Session; session_destroy() : permet de détruire une session.
IMPORTANT : La session doit être déclarée dans le code tout en haut de votre page car le cache du navigateur doit être vide pour démarrer une session. Donc aucun code HTML avant le démarrage d'une session
SESSION
<form action="login.php" method="post"><table align="center" border="0"> <tr><td>Login :</td>
<td><input type="text" name="txtlogin"> </td> </tr> <tr> <td>Password</td> <td><input type="password"name="txtpass"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="log in"></td> </tr></table> </form> <?php $login = $_POST["txtlogin"]; $pass = $_POST["txtpass"]; if($login=="" || $pass=="") {
print "Remplir les champs SVP!"; } else {
session_start();
$_SESSION['login']=$login; echo "Bienvenue, $login";
print "<a href=membre.php> Accès Membres </A>"; }
?> <?php
login.htm login.php
46
Manipuler les COOKIES
•
Un cookie est un fichier que le serveur envoi sur la machine de
l'utilisateur.
•
Il est souvent utilisé pour reconnaître les utilisateurs.
•
Vous pouvez en php créer et retrouver les valeurs du cookie.
• La fonction
setcookie()
est utilisé pour créer 1 cookie.
•
Syntaxe :
Syntaxe :
<?php setcookie(name, value, expire); ?>
•
Exemple :
Exemple :
$contenu = "Bjr";
// Contenu de votre cookie
setcookie("Test1", $contenu, time()+36000);
Manipuler les COOKIES : Affichage
• Un
cookie
peut contenir des variables ou une chaîne de caractère.
• Vous pouvez afficher directement le contenu de votre
cookie
à l'aide
des variables d'environnements.
•
Syntaxe :
Syntaxe :
<?php
echo
$_COOKIE
["nom"];
// ou
echo
$HTTP_COOKIE_VARS
["nom"];
?>
48
Activités d’apprentissage
A5. Construire une page qui permette d’afficher :
- une liste avec les noms des vendeurs suivants : M. Ali, M. Louis, M. Rouhi et Mme. Leila
- une liste qui affiche la liste des produits disponibles
- Ajouter une zone de texte pour saisir le nombre de produits à commander et renvoyer sur une autre page le récapitulatif de la demande
A6. Reprendre le même exercice, mais effectuer le test de saisie sur le navigateur client à l’aide de JavaScript.
Manipulation des fichiers textes
La manipulation de fichier se fait grâce à un identifiant de fichier.
Quelques fonctions :
fopen($fp) : Ouvrir le fichier identifié par le $fp
fclose ($fp) : Fermer le fichier identifié par le $fp
fgets($fp,
"
$length
"
) : Lit une ligne de $length caractères au
maximum
fputs($fp, $str) : Écrit la chaîne $str dans le fichier $fp
Exemple
Exemple
:
fputs($fp,"$nom;$mail\n");
feof($fp) : Teste la fin du fichier
file_exists($file) : Indique si le fichier $file existe
filesize($file) : Retourne la taille du fichier $file
unlink($file) : Détruit le fichier $file
50
Manipulation des fichiers textes
• La fonction fopen permet d’ouvrir des fichiers dont le chemin est relatif ou absolu.
• Elle permet aussi d’ouvrir des ressources avec les protocoles HTTP ou FTP.
Exemples :
$fp = fopen(''../docs/faq.txt'', ''r'');
$fp = fopen(''http://www.php.net/test.txt'', ''r'');
Les modes d’ouverture :
• r : lecture seule
• r+ : lecture et écriture
• w : écriture seule
• w+ : lecture/écriture ……
Exemple 1 : Lecture d’un fichier
<?php
$file = "fichier.txt";
if( $fd = fopen($file, "r"))
{ // ouverture du fichier en lecture
while ( ! feof($fd) )
{ // teste la fin de fichier
$str = fgets($fd);
echo $str; // affichage
echo " <br>"; }
fclose ($fd); // fermeture du fichier
} else
{
52
Exemple 2 : Lecture d’un fichier
<?php
$fichier = file("info.txt");
$total = count($fichier);
// Nombre total des lignes du fichierfor($i = 0; $i < $total; $i++)
{
echo $fichier[$i]."<br>";
}
Fonction explode()
Syntaxe :
Syntaxe :
string explode ( string séparateur , string string )
• Elle Retourne un tableau de chaînes de caractères. Ce sont les sous-chaînes extraites de string , en utilisant le séparateur
Exemple : Exemple : <?php $f=file("liste.txt"); sort($f); for ($i=0;$i<count($f);$i++) {
// découpage d'1 ligne suivant les ";" $decoup=explode(";",$f[$i]);
54
Activités d’apprentissage
Nous souhaitons gérer les contacts d’un particulier. Un contact est composé d’un nom, prénom et un numéro de téléphone. Les contacts seront enregistrés dans un fichier texte.
2. Créer un formulaire permettant d’ajouter un contact
3. Créer un script permettant d’enregistrer un nouvel contact 4. Créer un script permettant d’afficher tous les contact
Solution
Enregistrement : Enregistrement : <?php $nom=$_POST["nom"]; $prenom=$_POST["prenom"]; $telephone=$_POST["telephone"]; $fp=fopen("liste.txt","a"); fputs($fp,"$nom;$prenom;$telephone\n"); fclose ($fp);56
Solution
Affichage simple : Affichage simple : <?php $f=file("liste.txt"); sort($f); for ($i=0;$i<count($f);$i++) { $l=explode(";",$f[$i]);echo "<LI>Nom: $l[0]<BR>Prénom: $l[1]<BR>Téléphone : $l[2]\n" }
Solution
Affichage dans un tableau :
Affichage dans un tableau :
<TABLE BORDER=1> <TR><TH>Nom</TH><TH>Prénom</TH><TH>Téléphone</TH></TR> <?php $f=file("liste.txt"); sort($f); for ($i=0;$i<count($f);$i++) { $l=explode(";",$f[$i]); echo"<TR><TD>$l[0]</TD><TD>$l[1]</TD><TD>$l[2]</TD></TR>" ; } ?>
58
Exemple : Compteur de visite
<?php
$fichier="cpt.txt";
$fd=fopen($fichier,"r+");
$ligne=fgets($fd,10);
print "Visiteurs : $ligne";
$ligne=$ligne+1;
fseek($fd,0);
fputs($fd,$ligne);
fclose($fd);
?>
int fseek ( resource handle , int offset , int whence ) :
modifie le
curseur de position dans le fichier
handle
. La nouvelle position
mesurée en octets à partir du début du fichier, est obtenue en
additionnant la distance
offset
à la position
whence
.
Accès aux données
MYSQL
60
• MySQL est une base de données implémentant le
langage de requête SQL
• Il existe un outil libre et gratuit développé par la
communauté des programmeurs libres : phpMyAdmin
qui permet l’administration des bases de données
MySQL avec php.
• MySQL permet de créer et gérer plusieurs bases de
données sur un serveur de base de données.
• Établir une
connexion
avec le SGBD MySQL.
• Spécifier la base de données
à utiliser.
• Exécuter les opérations
sur cette base de données (SELECT,
INSERT, DELETE, UPDATE, etc…)
• Lorsque tous les traitements sont terminés, on se
déconnecte
du serveur MySQL.
62
• mysql_connect($server,$user,$password)
: permet de se connecter au serveur
$server
en tant qu’utilisateur
$user
avec le mot de passe
$password
,
• mysql_select_db($base)
: permet de choisir la base
$base
, retourne TRUE en cas de
succès, sinon FALSE
• mysql_close([$id]) :
permet de fermer la connexion
• mysql_query($str)
qui prend pour paramètre une chaîne de caractères qui contient la
requête écrite en SQL.
Les requêtes les plus couramment utilisées sont : CREATE (création d’une table),
SELECT (sélection), INSERT (insertion), UPDATE (mise à jour des données),
DELETE (suppression), ALTER (modification d’une table), etc.
Exemple :
Exemple :
$result =
mysql_query
("SELECT address FROM users WHERE name=\"$name\"");
Connexion à la base de données
64
Connexion à la base de données – Exemple 2
mysql_fetch_row($result)
: 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.
Exemple :
66
Exemple : Test de la requête
mysql_fetch_array($result) :
retourne un tableau associatif. Les clés étant les noms
des attributs et leurs valeurs associées leurs valeurs respectives. Retourne FALSE
s’il n’y a plus aucune ligne.
Exemple :
68
Ajout des données
INSERT permet d’ajouter une ligne dans une table de la base de données. Syntaxe :
Syntaxe :
INSERT INTO Matable(champ1, champ2,…) VALUES ('$var1','$Var2',…)
Exemple :
Exemple :
<html><body>
<form id="form1" name="form1" method="post" action="validajout.php"> ID : <input name="txtid" type="text" /><br>
Nom : <input name="txtnom" type="text" /><br>
Prénom : <input name="txtprenom" type="text" /><br> <input type="submit" value="Envoyer"/>
</form> </body></html>
Exemple
<?php $id = $_POST["txtid"]; $nom = $_POST["txtnom"]; $prenom = $_POST["txtprenom"]; if($id=="" || $nom=="" || $prenom=="") echo "Saisir tes données SVP!";else {
$idc = mysql_connect("localhost","root",""); $id_db = mysql_select_db("mabase",$idc);
$requet = "INSERT INTO clients(idclient, nomclient, prenomclient) VALUES ('$id','$nom','$prenom')";
Ajout.htm
70
Activités d’apprentissage
Nous souhaitons développer un livre d’or pour un petit site
personnel, les informations utilisées sont : nom, prénom, Émail
et un message.
•
Créer votre base de données sous Mysql contenant une table
«
tablivredor
». Remplir la table avec quelques données
•
Créer un script permettant d’afficher tous les messages
enregistrés dans la table
•
Structurer l’affichage de votre livre d’or en utilisant des
tableaux et des couleurs …
•
Proposer une solution de recherche pour votre livre d’or
Quelques fonctions
• mysql_num_rows : Retourne le nombre de lignes d'un résultat MySQL
Exemple :
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result); echo "$num_rows Rows\n";
72
Quelques fonctions
• mysql_error : Retourne le texte associé avec l'erreur générée lors de la dernière requête
Exemple :
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";
mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link); echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
Quelques fonctions
• mysql_free_result : Libère le résultat de la mémoire Exemple :
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'"); if (!$result) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error(); exit;
}
/* Utilisation du résultat */
$row = mysql_fetch_assoc($result);
/* Maintenant, nous libérons le résultat et continuons notre script */
mysql_free_result($result); echo $row['id'];
74
Quelques fonctions
• mysql_list_dbs : Liste les bases de données disponibles sur le serveur MySQL
Exemple :
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);
while ($row = mysql_fetch_object($db_list)) { echo $row->Database . "\n";
}
Quelques fonctions
• mysql_list_tables : Liste les tables d'une base de données MySQL
Exemple :
<?php
$dbname = 'mysql_dbname';
if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) { echo 'Impossible de se connecter à MySQL';
exit; }
$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql); if (!$result) {
echo "Erreur DB, impossible de lister les tables\n"; echo 'Erreur MySQL : ' . mysql_error();
exit; }
76
Suppression des données (DELETE)
DELETE permet de supprimer une ligne dans une table de la base de données.
Syntaxe : DELETE FROM table [WHERE expression] expression : condition de suppression des lignes
Si la clause WHERE n'est pas mise, toutes les lignes de la table seront supprimées.
Exemple : $sql = mysql_query("DELETE from client where id='$id'");
Modification des données (UPDATE)
UPDATE permet de modifier une ligne dans une table de la base de données.
Syntaxe : UPDATE table SET champs=valeur, ... [WHERE expression] table : table ou la ligne doit être modifiée
champs : nom des champs qui doivent être modifiés valeurs : valeurs des champs qui doivent être modifiés expression : condition de modification des lignes
Si la clause WHERE n'est pas mise, toutes les lignes de la table seront modifiées.
Exemple : $sql ='update client set `nom`="'.$nom.'",`prenom`="'.$prenom.'", `age`="'. $age.'",`email`="'.$email.'" where id="'.$id.'"';
Activités d’apprentissage
Nous souhaitons afficher les enregistrements d’une table de la
base de données sous la forme ci-dessous afin de permettre
aux utilisateurs de mettre à jour les données
78
Projet
Développer un site web pour la gestion des annonces
• Concevoir votre base de données sous MySql
• Concevoir un modèle de page web pour votre site (Charte)
• Développer les pages nécessaires pour la gestion des annonces