Vous êtes sur la page 1sur 78

PHP

1
JELLAL

Modle

requte Client internet rponse

r eu rv Se

Base de donnes MySQL


2

Cr en 1994 par Rasmus Lerdorf pour les besoins des pages web personnelles (livre dor, compteurs, etc.). A lpoque, PHP signifiait Personnal Home Page. Il supporte tous les standards du web, gratuit et libre Open Source Il existe par ailleurs des applications web prtes lemploi (PHPNuke, PHP SPIP, PHPSlash) permettant de monter facilement et gratuitement son portail. Les serveurs dapplication les plus utiliss pour dvelopper des sites web dynamique en PHP : EasyPHP WAMP XAMPP .

Intgration dun script dans une page


Les Les Les Les pages web au niveau client Rponse sont au format HTML. pages Web PHP ont lextension .php instructions se terminent avec un point virgule pages web dynamiques PHP doivent avoir la structure :

Exemple : <html> <body> <?php Scripts PHP ?> </body> </html>

Autres syntaxes dintgration : <? ?> <script language="php"> Votre script </script>
4

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.

Affichage
Les fonctions daffichage :
echo() : criture dans le navigateur print() : criture dans le navigateur

Exemples : echo "Bonjour"; print("Bonjour");

Variables
Le typage des variables est implicite en php. Il nest donc pas ncessaire de dclarer leur type au pralable ni mme de les initialiser avant leur utilisation. Les identificateurs de variable sont prcds du symbole $ (dollars). Exemple : $toto. Il est possible de convertir une variable en un type primitif grce au cast(1) (comme en C).

Exemple : $str = "12"; $nbr = (int)$str; echo $nbr

// $str vaut la chane "12" // $nbr vaut le nombre 12

Variables
Quelques fonctions : empty($var) : renvoie vrai si la variable est vide isset($var) : renvoie vrai si la variable existe unset($var) : dtruit 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 porte dune variable est limite au bloc dans lequel elle a t cre. Une variable locale une fonction nest pas connue dans le reste du programme. Une variable du programme nest pas connue dans une fonction. Une variable cre dans un bloc nest pas connue dans les autres blocs, mmes suprieurs.

Constantes
Lutilisateur peut dfinir des constantes dont la valeur est fixe une fois pour toute. Les constantes ne portent pas le symbole $ (dollars) et ne sont pas modifiables.

Syntaxe :
define("var",valeur) : dfinit la constante var (sans $) de valeur valeur

Exemple 1 : define("author", "Test"); echo author;

// affiche Test

Exemple 2 : define("MY_YEAR", 1980); echo MY_YEAR; // affiche 1980


10

Les oprateurs

Les oprateurs de calcul :


Signe + * / % = plus moins multipli par divis modulo a la valeur Nom Signification addition soustraction multiplication par division reste de la division par affectation Exemple $x + 3 $x - 3 $x*2 $x /2 $x%5 $x=5 Rsultat 14 8 22 5.5 1 5

11

Les oprateurs

Les oprateurs de comparaison :


Signe == < <= > >= != gal infrieur infrieur ou gal suprieur suprieur ou gal diffrent Nom Exemple $x==11 $x<11 $x<=11 $x>11 $x>=11 $x!=11

12

Les oprateurs

Les oprateurs logiques :


Signe && || et ou Nom Exemple (condition1)&&(condition2) (condition1)||(condition2) Signification Condition1 et condition2 condition1 ou condition2

Les oprateurs dincrmentation :


Signe $x++ $x-Description Incrmentation (x++ est le mme que x=x+1) Dcrmentation (x-- est le mme que x=x-1) Exemple $y = $x++ $y= $x-13

Mathmatiques
Quelques fonctions mathmatiques : abs($x) : valeur absolue de x ceil($x) : arrondi suprieur floor($x) : arrondi infrieur pow($x,$y) : x exposant y round($x,$i) : arrondi de x la ime dcimale max($a, $b, $c ) : retourne largument 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)


14

Mathmatiques Exemple
<html><body> <?php $str = -12.1234; $x =abs($str); $y = ceil($x); echo $x; echo "<br>"; echo $y; echo "<br>"; echo "Max : "; $a=1; $b=3; $c=6; $maxi = max($a, $b, $c); echo $maxi; ?> </body></html>

// valeur absolue de str // arrondi suprieur

//Max de a, b et c
15

Chanes de caractres
Oprateur de concatnation de chanes :

. (point)

Exemple 1 : $var1 = "Hello"; $var2 = "Word"; echo $var1 . $var2;

16

Chanes de caractres
Affichage dune chane avec la fonction echo() :

Exemples: echo Hello Word.; echo "Hello $var"; echo "Nom : ". $name;

Quelques fonctions:
strlen($str) : retourne le nombre de caractres dune chane strtolower($str) : conversion en minuscules strtoupper($str) : conversion en majuscules trim($str) : suppression des espaces de dbut et de fin de chane substr($str,$i,$j) : retourne une sous chane de $str de taille $j et dbutant la position $i strnatcmp($str1,$str2) : comparaison de 2 chanes addslashes($str) : dspcialise les caractres spciaux (, , \) ord($char) : retourne la valeur ASCII du caractre $char

17

Chanes de caractres
Quelques fonctions :
strpos()
Recherche la position du premier caractre trouv. Retourne le nombre de caractres placs avant lui (ici 4). $res = strpos("abcdef","e"); Rsultat : 4 Recherche si une chane de caractre est contenue dans une autre (ex. recherche si "ABCDE" contient "BCD"). if(ereg("BCD","ABCDEF")) {echo "oui";} else {echo "non";} Rsultat : oui Remplace un caractre par un autre dans une chane. Tiens compte de la casse. $res = str_replace("a","o","Lalala"); Rsultat : Lololo Met la premire lettre de chaque mot d'une chane en Majuscule. $res = ucwords("salut le monde"); Rsultat : Salut Le Monde
18

ereg()

str_replace()

ucwords()

Chanes de caractres - Exemple

<?php $name = " Patrice "; echo strlen($name) ; echo "<br>"; echo strtoupper($name); echo "<br>"; echo trim($name); print("<br>Bonjour $name"); ?>

19

Structures de contrle et ditrations


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 dfaut }

break : permet de forcer la sortie d'une boucle

20

Structures de contrle et ditrations


Structures de boucle (mme syntaxe quen langage C) : for (initialisation;Condition;Modification) { // Instructions }

while (Condtion) { // Instructions }

do { // Instructions } while (Condition);

21

Structures de contrle et ditrations


Linstruction break permet de quitter prmaturment une boucle.
<?php for($i=1; $i<=10; $i++) { if($i == 3) break; echo $i . "<br>"; } ?>

Linstruction continue permet dviter les instructions suivantes de litration courante de la boucle pour passer la suivante.

Exemple :
<?php for($i=1; $i<=10; $i++) { if($i == 3) continue; echo $i . "<br>"; } ?>

//litration de i=3 ne sera pas excute


22

Inclusions
On peut inclure dans un script php le contenu dun autre fichier.
require : insert dans le code le contenu du fichier spcifi mme si ce nest pas du code php.

Exemple : require(fichier.php);
include : value et insert chaque appel le contenu du fichier pass en argument.

Exemple : include(fichier.php);

23

Arrt prmatur
Pour stopper prmaturment un script, il existe deux fonctions. die : arrte un script et affiche un message derreur dans le navigateur. Exemple : if(mysql_query($requette) == false) die(Erreur de base de donnes la requte : $requet); exit : larrte aussi mais sans afficher de message derreur. Exemple : exit();

Remarque : Ces fonctions stoppent tout le script, pas seulement le bloc en cours.

24

Fonctions
Les fonctions peuvent prendre des arguments dont il nest pas besoin de spcifier le type. Syntaxe : <?php function mafonction($arg1,$arg2,$arg3,.) { // Votre Script } ?> Lappel de la fonction se fait avec son nom : mafonction(par1,par2,par3,.); la commande return() termine immdiatement la fonction, et retourne l'argument qui lui est pass Exemple :
<?php function mafonction($toto) { $toto += 15; return ($toto+10); } $nbr = MaFonction(15.1); echo $nbr; ?>

25

Fonctions
Une fonction peut tre dfinie aprs son appel (en PHP4 du fait de la compilation avant excution contrairement au PHP3 qui est interprt).

Exemple :
Test(); // appel de la fonction Test pas encore dfinie

function Test() { // dfinition de la fonction Test echo "Ceci est un test"; }

26

Tableaux
Une variable tableau est de type array. Un tableau accepte des lments de tout type. Les lments dun tableau peuvent tre de types diffrents et sont spars dune 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"; Lappel dun lment du tableau se fait partir de son indice Exemple : echo $tab[10]; // Pour accder au 11me lment
27

Tableaux
Quelques fonctions:
count($tab) et sizeof ($tab) : retournent le nombre dlments du tableau in_array($var,$tab) : vrifie si la valeur de $var existe dans le tableau $tab shuffle($tab) : mlange les lments dun tableau sort($tab) : trie alphanumrique les lments du tableau rsort($tab) : trie alphanumrique inverse les lments du tableau array_rand($tab) : retourne un lment du tableau au hasard unset($tab) : efface compltement le tableau print_r($tab) : affiche les lments dun tableau

28

Tableaux
Exemple 1 : Parcours dun tableau $tab = array("Hugo", "Jean", "Mario"); $i=0; while($i< count($tab)) // count() retourne le nombre dlments { echo $tab[$i]; echo "<br>"; $i++; } Exemple 2: <?php $tabnumbers = array(5, 2, 4, 1, 3); print_r($tabnumbers); echo"<br>"; sort($tabnumbers); print_r($tabnumbers); echo"<br>"; rsort($tabnumbers); print_r($tabnumbers); ?>

29

Tableaux
foreach($NameTable as $value) { Instructions } La structure de contrle foreach : permet de de parcourir un tableau Explication : chaque itration, la valeur de l'lment courant est assigne $value et le pointeur interne de tableau est avanc d'un lment (ce qui fait qu' la prochaine itration, on accdera l'lment suivant). Exemple : <?php $tabnumbers = array(5, 2, 4, 1, 3); foreach ($tabnumbers as $test) { echo $test."<br>\n"; } ?>

30

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 foreach($centres as $pop) { echo $pop."<br>"; } ?> </body></html>

31

Activits dapprentissage
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 larmoire 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. Ralisera cet exercice avec linstruction FOR puis avec linstruction WHILE. A4. Initialiser un tableau avec 4 nombres et en faire la somme. a) sans faire de fonction b) en crant une fonction somme c) en crant un fichier spcifique qui contient la fonction somme.

32

Tableaux associatifs
Un tableau associatif est appel aussi dictionnaire ou hashtable. On associe chacun de ses lments une cl dont la valeur est de type chane de caractres. Linitialisation dun tableau associatif est similaire celle dun tableau normal.

Syntaxe :
$NomTable = array("cl1" => "Val_1", . , "cln" => "Val_n");

Exemple 1 : $personne = array("Nom" => "Csar", "Prnom" => "Jules"); Exemple 2 : $personne["Nom"] = "Csar"; $personne["Prnom"] = "Jules";
Ici, la cl "Nom" est associe la valeur "Csar".
33

Tableaux associatifs
Parcours dun tableau associatif. $personne = array("Nom" => "Csar", "Prnom" => "Jules"); Exemple 1 : foreach($personne as $elem) { echo $elem; echo " <br> "; } Ici on accde directement aux lments du tableau sans passer par les cls. Exemple 2 : foreach($personne as $key => $elem) { echo "$key : $elem"; } Ici on accde simultanment aux cls et aux lments.

34

Tableaux associatifs
Quelques fonctions :
array_keys($tab) : retourne un tableau contenant les cls du tableau associatif $tab array_values($tab) : retourne un tableau contenant les valeurs du tableau associatif $tab

Les tableaux associatifs permettent de prserver une structure de donnes.

35

Tableaux associatifs
Quelques fonctions alternatives pour le parcours de tableaux (normaux ou associatifs) : reset($tab) : place le pointeur sur le premier lment current($tab) : retourne la valeur de llment courant next($tab) : place le pointeur sur llment suivant prev($tab) : place le pointeur sur llment prcdant each($tab) : retourne la paire cl/valeur courante et avance le pointeur

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); } ?>

36

Rcupration des donnes du formulaire


La rcupration des donnes saisies via un formulaire se fait grce aux variables serveur :
$_POST["NomChampFormulaire"] : Avec la mthode denvoi POST $_GET["NomChampFormulaire "] : Avec la mthode denvoi GET

Exemple : $Compte = $_POST["txtcompte"];

37

Passage de paramtres un script Mthode 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> <?php $id = $_POST["txtcompte"]; $passe = $_POST["txtpasse"]; if($id=="" || $passe=="") echo "Saisir tes donnes SVP!"; else echo "Salut, $id"; ?>
Form.php

check.php

38

Passage de paramtres un script Mthode 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> <?php $id = $_GET["txtcompte"]; $passe = $_GET["txtpasse"]; if($id=="" || $passe=="") echo "Saisir tes donnes SVP!"; else echo "Salut, $id"; ?>
Form1.php

check1.php

39

Passage de paramtres un script Mthode GET


Les variables peuvent directement tre passes par lintermdiaire des URL.

Exemple : <html><body> <?php $id = 20; echo "<a href=\"Acheter.php?action=buy&id=$id\">Acheter</a>"; ?> </body></html> Cet exemple va crer 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"; ?>

40

Variables denvironnement
PHP est dot dune multitude de variables denvironnement Ces variables permettent au script daccder des informations trs utiles.

Quelques variables :

HTTP_USER_AGENT : signature du navigateur du client REMOTE_ADDR : adresse IP du client HTTP_ACCEPT_LANGUAGE : la langue utilise .
La rcupration de ces variables se fait grce la fonction : getenv()

Exemple :
<?php $ip = getenv("REMOTE_ADDR"); echo $ip; ?>
41

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> </html>
42

REDIRECTION
<?php header("Location: URL"); ?> Ce script effectue une redirection vers une autre page. Cest--dire que le navigateur du client en voyant cet entte Location va charger directement la page indique sans regarder la suite du script.

Attention : Aucune Balise HTML ne doit tre place avant le header.

43

SESSION

Chaque session est dsigne par un nom et un identifiant. la session est dtruite la fermeture du navigateur, ou au bout de 30 mins.

session_start() ou session_register() : Permet de dmarrer une session; $_SESSION['variable'] = $valeur : cre une variable de session nomme 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']) : Dtruire une variable Session; session_unset() : fonction permettant de dtruire une variable Session; session_destroy() : permet de dtruire une session. IMPORTANT : La session doit tre dclare dans le code tout en haut de votre page car le cache du navigateur doit tre vide pour dmarrer une session. Donc aucun code HTML avant le dmarrage d'une session
44

SESSION
login.htm <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.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> Accs Membres </A>"; } ?> }

membre.php <?php session_start(); $p=$_SESSION['login']; print "Bienvenue <b> $p </b> dans l'espace des membres"; ?> 45

Manipuler les COOKIES


Un cookie est un fichier que le serveur envoi sur la machine de l'utilisateur. Il est souvent utilis pour reconnatre les utilisateurs. Vous pouvez en php crer et retrouver les valeurs du cookie. La fonction setcookie() est utilis pour crer 1 cookie. Syntaxe : Exemple :

<?php setcookie(name, value, expire); ?>


$contenu = "Bjr"; // Contenu de votre cookie setcookie("Test1", $contenu, time()+36000);

46

Manipuler les COOKIES : Affichage


Un cookie peut contenir des variables ou une chane de caractre. Vous pouvez afficher directement le contenu de votre cookie l'aide des variables d'environnements.
Syntaxe :

<?php echo $_COOKIE["nom"]; // ou echo $HTTP_COOKIE_VARS["nom"]; ?>

47

Activits dapprentissage
A5. Construire une page qui permette dafficher : - 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 rcapitulatif de la demande A6. Reprendre le mme exercice, mais effectuer le test de saisie sur le navigateur client laide de JavaScript. A7. Dvelopper une calculatrice en ligne :

48

Manipulation des fichiers textes


La manipulation de fichier se fait grce 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 caractres au maximum fputs($fp, $str) : crit la chane $str dans le fichier $fp

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) : Dtruit le fichier $file copy($source, $dest) : Copie le fichier $source vers $dest rename($old, $new) : Renomme le fichier $old en $new sort($f) : Trier le contenu dun fichier

49

Manipulation des fichiers textes


La fonction fopen permet douvrir des fichiers dont le chemin est relatif ou absolu. Elle permet aussi douvrir 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 douverture : r : lecture seule r+ : lecture et criture w : criture seule w+ : lecture/criture
50

Exemple 1 : Lecture dun 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 { die("Ouverture du fichier <b>$file</b> impossible."); } ?>
51

Exemple 2 : Lecture dun fichier


<?php $fichier = file("info.txt"); $total = count($fichier); // Nombre total des lignes du fichier for($i = 0; $i < $total; $i++) { echo $fichier[$i]."<br>"; } ?>

52

Fonction explode()
Syntaxe :

string explode ( string

sparateur , string

string )

Elle Retourne un tableau de chanes de caractres. Ce sont les souschanes extraites de string , en utilisant le sparateur
Exemple :

<?php $f=file("liste.txt"); sort($f); for ($i=0;$i<count($f);$i++) { // dcoupage d'1 ligne suivant les ";" $decoup=explode(";",$f[$i]); // affichage aprs dcoupage echo " $decoup[0] <BR> $decoup[1] "; } ?>
53

Activits dapprentissage
Nous souhaitons grer les contacts dun particulier. Un contact est compos dun nom, prnom et un numro de tlphone. Les contacts seront enregistrs dans un fichier texte. 2. 3. 4. 5. Crer Crer Crer Crer un un un un formulaire permettant dajouter un contact script permettant denregistrer un nouvel contact script permettant dafficher tous les contact script permettant dafficher tous les contact dans un tableau

54

Solution
Enregistrement : <?php $nom=$_POST["nom"]; $prenom=$_POST["prenom"]; $telephone=$_POST["telephone"]; $fp=fopen("liste.txt","a"); fputs($fp,"$nom;$prenom;$telephone\n"); fclose ($fp); echo "Le nouveau contact a t enregistr :" ?>
55

Solution
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>Prnom: $l[1]<BR>Tlphone : $l[2]\n" } ?>

56

Solution
Affichage dans un tableau : <TABLE BORDER=1> <TR><TH>Nom</TH><TH>Prnom</TH><TH>Tlphone</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>" ; } ?>

57

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 mesure en octets partir du dbut du fichier, est obtenue en additionnant la distance offset la position whence .
58

Accs aux donnes MYSQL


59

MYSQL
MySQL est une base de donnes implmentant le langage de requte SQL Il existe un outil libre et gratuit dvelopp par la communaut des programmeurs libres : phpMyAdmin qui permet ladministration des bases de donnes MySQL avec php. MySQL permet de crer et grer plusieurs bases de donnes sur un serveur de base de donnes.

60

Les tapes pour interagir avec une base de donnes


tablir une connexion avec le SGBD MySQL. Spcifier la base de donnes utiliser. Excuter les oprations sur cette base de donnes (SELECT, INSERT, DELETE, UPDATE, etc) Lorsque tous les traitements sont termins, on se dconnecte du serveur MySQL.

61

Connexion la base de donnes


mysql_connect($server,$user,$password) : permet de se connecter au serveur $server en tant quutilisateur $user avec le mot de passe $password, mysql_select_db($base) : permet de choisir la base $base, retourne TRUE en cas de succs, sinon FALSE mysql_close([$id]) : permet de fermer la connexion mysql_query($str) qui prend pour paramtre une chane de caractres qui contient la requte crite en SQL. Les requtes les plus couramment utilises sont : CREATE (cration dune table), SELECT (slection), INSERT (insertion), UPDATE (mise jour des donnes), DELETE (suppression), ALTER (modification dune table), etc.

Exemple : $result = mysql_query("SELECT address FROM users WHERE name=\"$name\"");


62

Connexion la base de donnes Exemple 1

63

Connexion la base de donnes Exemple 2

64

mysql_fetch_row($result) : retourne une ligne de rsultat sous la forme dun tableau. Les lments du tableau tant les valeurs des attributs de la ligne. Retourne FALSE sil ny a plus aucune ligne.

Affichage des rsultats

Exemple :

On accde aux valeurs de la ligne par leur indice dans le tableau.

65

Affichage des rsultats


Exemple : Test de la requte

66

Affichage des rsultats


mysql_fetch_array($result) : retourne un tableau associatif. Les cls tant les noms des attributs et leurs valeurs associes leurs valeurs respectives. Retourne FALSE sil ny a plus aucune ligne. Exemple :

On accde aux valeurs de la ligne par lattribut dans le tableau associatif.

67

Ajout des donnes


INSERT permet dajouter une ligne dans une table de la base de donnes.

Syntaxe :
INSERT INTO Matable(champ1, champ2,) VALUES ('$var1','$Var2',)

Exemple :
INSERT INTO TabClient(Nom, Prenom) VALUES ('$nom','$prenom')

68

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> Prnom : <input name="txtprenom" type="text" /><br> <input type="submit" value="Envoyer"/> </form> </body></html>

Ajout.htm

<?php $id = $_POST["txtid"]; $nom = $_POST["txtnom"]; $prenom = $_POST["txtprenom"]; if($id=="" || $nom=="" || $prenom=="") validajout.php echo "Saisir tes donnes 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')"; $result = mysql_query($requet); echo "Enregistrement ffectu!"; } 69 ?>

Activits dapprentissage
Nous souhaitons dvelopper un livre dor pour un petit site personnel, les informations utilises sont : nom, prnom, mail et un message.

Crer votre base de donnes sous Mysql contenant une table tablivredor . Remplir la table avec quelques donnes Crer un script permettant dafficher tous les messages enregistrs dans la table Structurer laffichage de votre livre dor en utilisant des tableaux et des couleurs Proposer une solution de recherche pour votre livre dor Ajouter un formulaire dajout pour votre livre dor
70

Quelques fonctions

mysql_num_rows : Retourne le nombre de lignes d'un rsultat 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"; ?>

71

Quelques fonctions

mysql_error : Retourne le texte associ avec l'erreur gnre lors de la dernire requte

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"; ?>

72

Quelques fonctions

mysql_free_result : Libre le rsultat de la mmoire

Exemple : <?php $result = mysql_query("SELECT id,email FROM people WHERE id = '42'"); if (!$result) { echo 'Impossible d\'excuter la requte : ' . mysql_error(); exit; } /* Utilisation du rsultat */ $row = mysql_fetch_assoc($result); /* Maintenant, nous librons le rsultat et continuons notre script */ mysql_free_result($result); echo $row['id']; echo $row['email']; ?>
73

Quelques fonctions

mysql_list_dbs : Liste les bases de donnes 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"; } ?>

74

Quelques fonctions

mysql_list_tables : Liste les tables d'une base de donnes 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; } while ($row = mysql_fetch_row($result)) { echo "Table : {$row[0]}\n"; } mysql_free_result($result); ?>

75

Suppression des donnes (DELETE)


DELETE permet de supprimer une ligne dans une table de la base de donnes. 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 supprimes. Exemple : $sql = mysql_query("DELETE from client where id='$id'");

Modification des donnes (UPDATE)


UPDATE permet de modifier une ligne dans une table de la base de donnes. Syntaxe : UPDATE table SET champs=valeur, ... [WHERE expression] table : table ou la ligne doit tre modifie champs : nom des champs qui doivent tre modifis valeurs : valeurs des champs qui doivent tre modifis expression : condition de modification des lignes Si la clause WHERE n'est pas mise, toutes les lignes de la table seront modifies. Exemple : $sql ='update client set `nom`="'.$nom.'",`prenom`="'.$prenom.'", `age`="'. $age.'",`email`="'.$email.'" where id="'.$id.'"'; 76

Activits dapprentissage
Nous souhaitons afficher les enregistrements dune table de la base de donnes sous la forme ci-dessous afin de permettre aux utilisateurs de mettre jour les donnes

77

Projet
Dvelopper un site web pour la gestion des annonces

Concevoir votre base de donnes sous MySql Concevoir un modle de page web pour votre site (Charte) Dvelopper les pages ncessaires pour la gestion des annonces Ajouter un profil pour administrer le site

78