• Aucun résultat trouvé

[PDF] Formation de base sur les principaux savoir-faire du langage php | Télécharger PDF

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Formation de base sur les principaux savoir-faire du langage php | Télécharger PDF"

Copied!
78
0
0

Texte intégral

(1)
(2)

2

Modèle

Client

Base de

données

MySQL

Se

rve

ur

internet

requête

réponse

(3)

• 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)

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

(5)

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)

6

Affichage

Les fonctions d’affichage :

echo() : écriture dans le navigateur print() : écriture dans le navigateur

Exemples :

echo "Bonjour";

(7)

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)

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()…

(9)

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)

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

(11)

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)

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

(13)

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)

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)

(15)

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)

16

Chaînes de caractères

Opérateur de concaténation de chaînes :

.

(point)

Exemple 1 :

$var1 = "Hello"; $var2 = "Word";

(17)

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)

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

(19)

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)

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 }

(21)

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)

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

(23)

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)

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.

(25)

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)

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

(27)

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)

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

(29)

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)

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

(31)

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)

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

(33)

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)

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

}

(35)

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)

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

(37)

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)

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

(39)

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)

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

(41)

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)

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>

(43)

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)

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

(45)

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)

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

(47)

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)

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.

(49)

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)

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 ……

(51)

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)

52

Exemple 2 : Lecture d’un 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>";

}

(53)

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)

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

(55)

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)

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

(57)

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)

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

.

(59)

Accès aux données

MYSQL

(60)

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.

(61)

• É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)

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

(63)
(64)

64

Connexion à la base de données – Exemple 2

(65)

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)

66

Exemple : Test de la requête

(67)

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)

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 :

(69)

<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)

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

(71)

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)

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

(73)

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)

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

}

(75)

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)

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.'"';

(77)

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)

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

Références

Documents relatifs

Supposons qu’Alice et Bob veulent collaborer sur le projet super-proj - Alice possède le code initial qu’elle publie sur son dépôt gitlab : https://gitlab.com/alice/super-proj.git

Il convient de souligner qu f on ne peut vérifier la qualité d'un produit une fois qu'il est achevé, mais qu'il faut s'en préoccuper tout au long et dès le début du processus

Ton document doit être enregistré dans le fichier réservé à ta classe sous la forme suivante : nom_prénom (ex. Lessard_Evelyne).. Le titre doit

Corrigés disponibles sur le site internet du cours p.101-102 p.104 à 108 p.111 p.117-118 p.119 à 123

compte du poids, du volume pour être facilement transportable, des possibilités de rangement..

plus pauvres. Stimuler l’application des technologies dans une optique de réduction des coûts. Accroître les services dans les zones rurales, reculées et peu peuplées. Renforcer

Jusque-là les enseignements d'ethnologie sont dispersés entre la Chaire d'anthropologie du Muséum d'Histoire naturelle, la Chaire d'histoire des religions de l'Ecole Pratique

7KH ,QIUDUHG FDPHUD HQDEOHV WKH WHPSHUDWXUH ILHOG RQ WKH VXUIDFH RI WKH VDPSOH WR