Title: Initiation PHP
1Initiation à PHP
2Plan
- Introduction à PHP
- Structure dun script PHP
- Les Variables et les constantes
- Les Types
- Les Opérateurs
- Les Structures de contrôle
3Introduction à PHP
- PHP Hypertext Preprocessor
- Langage de script HTML interprété coté serveur
- ? Perl qui ne peut être insérer dans du code HTML
- ? Javascript qui sexécute coté client
4Architecture dun site web avec PHP
Internet
Serveur Web
Programme Serveur
requêtes
HTML
HTML
Docs html
Scripts PHP
Module PHP
Navigateur (programme client)
5Attention!
- Un fichier HTML contenant un script PHP doit
avoir lextension ".php". - Un fichier PHP est toujours interprété au niveau
du serveur. - Pour visualiser le script dans un navigateur il
faut renommer le fichier avec lextension ".phps".
6Fichier PHP (coté serveur)
- lthtmlgt
- ltheadgt
- lttitlegtExemplelt/titlegt
- lt/headgt
- ltbodygt
- lt?php
- echo ("Bonjour, je suis un script PHP!")
- ?gt
- lt/bodygt
- lt/htmlgt
7Fichier PHP (coté client)
- lthtmlgt
- ltheadgt
- lttitlegtExemplelt/titlegt
- lt/headgt
- ltbodygt
- Bonjour, je suis un script PHP!
- lt/bodygt
- lt/htmlgt
8Structure dun script PHP
- Délimité par les balises déchappement lt?php et
?gt - Composé dinstructions terminées par un
point-virgule - Bloc dinstructions délimité par des accolades
- Associé à des commentaires
- // Commentaires de fin de ligne
- / Commentaires
- longs /
9Variables PHP
- En PHP, les variables sont représentées par un
signe dollar "" suivi du nom de la variable. Le
nom est sensible à la casse (ie x ! X). - Un nom de variable valide doit commencer par une
lettre ou un souligné (_), suivi de lettres,
chiffres ou soulignés (une lettre peut être une
des lettres minuscules (a à z) ou majuscules (A à
Z), et les caractères ASCII de 127 à 255).
10Exemple
- lt?php
- var "Jean"
- Var "Paul"
- echo ("var, Var") // affiche "Jean, Paul"
- 4site 'pas encore' // invalide commence
- // par un nombre
- _4site 'pas encore' // valide commence
- // par un souligné
- maïs 'jaune' // valide 'ï' est ASCII 239.
- ?gt
11Variables prédéfinies
- Il en existe trop pour les lister SERVER_NAME,
REMOTE_ADDR, - Pour la liste complète il faut utiliser la
fonction phpinfo() - lt?php
- phpinfo()
- ?gt
12Portée des variables
- La portée d'une variable dépend du contexte dans
lequel la variable est définie. Le plus souvent
elle concerne la totalité du script php.
Cependant - lt?php
- a 1 / portée globale /
- function test()
- echo a / portée locale /
-
- test() / naffichera rien car utilise la
variable locale a / - ?gt
13Les constantes
- Une constante est un identifiant (un nom) qui
représente une valeur simple. - Elle ne peuvent jamais être modifiée ou détruite
durant l'exécution du script. - Vous pouvez définir une constante en utilisant la
fonction define(). - Seuls les types de données scalaires peuvent être
placés dans une constante booléen, entier,
double et chaîne de caractères.
14Exemple
- lt?php
- define("CONSTANTE", "Bonjour le monde.")
- echo CONSTANTE // affiche "Bonjour le monde."
- echo Constante / affiche "Constante" et une
note dexecution (message derreur). / - defined(CONSTANTE) // retourne TRUE
-
- // pour afficher les constantes déjà défini
- print_r(get_defined_constants())
- ?gt
15Types PHP
- booléen TRUE FALSE (i.e. 0,"","0")
- entier
- flottant
- chaîne de caractères (entre " ou ')
- tableau
16Les chaînes de caractères
- lt?php
- chaine1 "une suite de caractères"
- chaine2 'une autre'
- / les guillemets permettent linterpolation de
variables / - ch3 " chaine\n"
- ch4 "une dernière ch3"
- echo(ch4)
- // affiche "une dernier chaine"
- // le backslash \ est le caractère déchappement
- ?gt
17Lindexation des tableaux
- lt?php
- tab1 array(1,2,3,4) // automatique
- tab2 array('couleur' gt 'rouge',
- 'gout' gt 'sucre', // associative
- 'forme' gt 'rond',
- 'nom' gt 'pomme')
- echo (tab10) // affiche 1
- echo (tab2'gout') // affiche sucre
- echo (tab20 // correct! -gt rouge
- ?gt
18Opérateurs arithmétiques
19Opérateurs de comparaison
20Opérateurs booléens
21Opérateurs incrémentaux
- Fonctionne aussi sur les caractères et les
chaînes!!
22Opérateurs dassignation et autres
23Structures de contrôle
- if/ if .. else / if .. elseif
- while / do .. while
- for / foreach
- switch
- break / continue
24Exemples (1)
- lt?php
- if (i 0)
- print "i vaut 0"
-
- elseif (i 1)
- print "i vaut 1"
- elseif (i 2)
- print "i vaut 2"
-
- else
- print "i différent"
- ?gt
- lt?php
- switch (i)
- case 0print "i vaut 0"
- break
- case 1
- print "i vaut 1"break
- case 2
- print "i vaut 2"break
- default
- print "i différent"
-
- ?gt
25Exemples (2)
- lt?php
- / exemple 1 /
- for(i1ilt10i)
- print i
- // fin du for
- / exemple 2 /
- for (i1i)
- if (i gt 10)
- break
- // fin du if
- print i
- / exemple 3 /
- i 1
- for ()
- if (i gt 10) break
- print i
- i
-
- / exemple 4 /
- for (i 1 i lt 10
- print i, i)
- ?gt
26Exemples (3)
- lt?php
- tabarray("a","b","c")
- foreach(tab as val)
-
- echo("valeurval\n")
-
- for(i0iltsizeof(tab)i)
-
- echo("valeurtabi\n")
-
- ?gt
- Affiche
- valeur a
- valeur b
- valeur c
27Exemples (4)
- lt?php tab"a","b","c"
- while (list(cle, val)each(tab))
- echo("Clécle ")
- echo("Valeurval\n")
-
- reset(tab) / replace le pointeur interne en
tête du tableau / - foreach(tab as cle gt val)
-
- echo("Clécle Valeurval\n")
-
- ?gt
- Affiche
- Clé0 Valeura
- Clé1 Valeurb
- Clé2 Valeurc
28Fonctions, Formulaires et Fichiers
29Plan
- Les Fonctions
- Gestion de Formulaires en PHP
- Les Fichiers
30Les Fonctions en PHP (1)
- Une fonction peut être définie en utilisant la
syntaxe suivante
lt?php function nom_fonction (param_1, ,
param_n) instruction_1 instruction_m r
eturn resultat ?gt
31Les Fonctions en PHP (2)
- function mot clé annonçant la définition dune
fonction, - Nom_fonction() nom de la fonction, servira à
son appel, - return mot clé permettant dassocier un
résultat à la fonction.
32Exemples
- function alea()
-
- choix rand(0,100)
- return choix
-
- function aleaN(Nombre)
-
- choix rand(0,Nombre)
- return choix
// Utilisation valalea alea() echo
valalea echo alea() max 20 valalea
aleaN(max) echo valeuralea echo aleaN(50)
33Fonctions standards
- PHP met à notre disposition un très grand nombre
de fonctions http//www.php.net/ - On peut également trouver des bibliothèques de
fonctions utilitaires dans des - sites comme http//www.asp-php.net/asphp2/fr/
- http//www.phpdebutant.com/
- Utilisez-les!
34Fonctions sur les chaînes
35Fonctions sur les tableaux
36Gestion de formulaires en PHP
- Les variables denvironnement lt?php phpinfo()
?gt - QUERY STRING récupère lensemble des
informations transmises depuis un formulaire
(visibles au niveau du navigateur en utilisant la
méthode GET) - REQUEST_METHOD GET ou POST
- HTTP_POST_VARS ou HTTP_GET_VARS tableau
associatif global contenant les données transmises
37Gestion des champs textuels (1)
- Les variables externes http//users.info.unicaen
.fr/fournier/PHP/SRC2/src_form1html - ltform action"src_form1.php" method"get"gt
- ltbgtNom lt/bgtltbr /gt
- ltinput type"text" name"nom" size10 /gt
- ltbgt Prénom lt/bgtltbr /gt
- ltinput type"text" name"prenom" size10 /gt
- ltinput type"submit" name"envoi"
- value"clic"gt
- lt/formgt
38Gestion des champs textuels (2)
- lthtmlgt
- ltbody bgcolor"FFFFFF"gt
- lt?php
- echo("QUERY_STRING QUERY_STRING ltbr /gt\n")
- echo("Nomnom ltbr /gt\n")
- echo("Prenom prenom ltbr
- /gt \n")
- ?gt
- lt/bodygt
- lt/htmlgt
1er résultat QUERY_STRING nomprenomenregistr
ementEnvoyer Nom Prenom
39Gestion de liste de sélection (1)
- ltform action"src_form2.php" method"get"gt
- Nom ltinput type"text" name"nom" size10 /gt
- Ville ltselect size"3" name"ville"gt
- ltoption value"Amiens"gt Amiens
- ltoption value"Bordeaux"gt Bordeaux
- ltoption value"Caen"gt Caen
- ltoption value"Lille"gt Lille
- lt/selectgt
- ltinput type"submit" name"enregistrement"
value"Envoyer"gt ltbr /gt - ltinput type"reset" name"annuler"gt
- lt/formgt
40Gestion de liste de sélection (2)
- lthtmlgt
- ltbody bgcolor"FFFFFF"gt
- lth1gt2e résultatlt/h1gt
- lt?php
- echo("Nom nom ltbr /gt \n")
- echo("Ville ville ltbr /gt \n")
- ?gt
- lt/bodygtlt/htmlgt
2e résultat Nom toto Ville Amiens
41Gestion de bouton radio (1)
- ltform action"src_form3.php" method"get"gt
- Nom ltinput type"text" name"nom" size10 /gt
- Département ltbr /gt
- Calvados ltinput type"radio" name"dpt"
- value"14"gt ltbr /gt
- Manche ltinput type"radio" name"dpt"
- value"50"gt ltbr /gt
- Orne ltinput type"radio" name"dpt"
- value"61"gt ltbr /gt
- ltinput type"submit" name"enregistrement"
value"Envoyer"gt ltbr /gt - lt/formgt
42Gestion de bouton radio (2)
- lt?php
- echo("Nom nom ltbr /gt \n")
- echo("Département dpt ltbr /gt \n")
- ?gt
- 3e résultat
- Nom Gégé
- Département 50
43Gestion des choix multiples (1)
- ltform action"src_form4.php" method"get"gt
- Nom ltinput type"text" name"personom"
size10 /gt - Cadeaux ltbr /gt
- Livre ltinput type"checkbox" name"cadeaux"
- value"livre" checked"checked"gt
- Tee-shirt ltinput type"checkbox"
name"cadeaux" - value"tee-shirt"gt
- Sac ltinput type"checkbox" name"cadeaux"
- value"sac"gt
- Sweet ltinput type"checkbox" name"cadeaux"
- value"sweet"gt
- ltinput type"submit" name"enregistrement"
value"Envoyer"gt - lt/formgt
44Gestion des choix multiples (2)
- lt?php
- echo("Nompersonom ltbr /gt")
- if (is_array(cadeaux))
- echo("Liste des cadeauxltulgt")
- foreach(cadeaux as elem)
- echo("ltligt elem \n")
-
- echo("lt/ulgt\n")
-
- ?gt
- Nom Toto
- Cadeaux
- Livre
- Sac
45Sélections multiples (1)
- ltform action"src_form5.php" method"get"gt
- Nom ltinput type"text" name"nom" size10 /gt
Musique ltselect multiple size"3" - name"musique"gt
- ltoption value"Electro"gt Electro
- ltoption value"Indus"gt Indus
- ltoption value"Pop"gt Pop
- ltoption value"Rap"gt Rap
- ltoption value"Rock"gt Rock
- lt/selectgt
- ltinput type"submit" name"enregistrement"
value"Envoyer"gt - lt/formgt
46Sélections multiples (2)
- Gestion identique aux checkbox.
- Si absence de vérification du tableau
- Warning Invalid argument supplied for foreach()
in /users/doct/fournier/public_html/PHP/SRC2/src_f
orm4_erreur.php on line 18
47Gestion de champs obligatoires
- Objectif valider un formulaire uniquement si un
minimum dinformations est renseigné. - Comment
- Vérifier létat des éléments obligatoires avant
de traiter les informations. - Renvoyer le formulaire en cas déchec
- Récupérer les informations déjà renseignées
48Séquence de gestion des erreurs
Script dorientation
Formulaire HTML
Échec (message)
Vérification des données
succès
Traitement des données
Résultat
49Distinction des champs obligatoires
- Regrouper les éléments obligatoires dans un
tableau associatif commun - ltform action"script.php" method"get"gt
- Nom () ltinput type"text"
- name"obligatoiresnom" size10 /gt
- Prénom ltinput type"text"
- name"optionsprenom" size10 /gt
-
- lt/formgt
- ltpgt() champs obligatoires lt/pgt
50Script dorientation
- lt?php
- if (!QUERY_STRING)
- include("formulaire.php")
-
- else / appel depuis un formulaire /
- if (valides(obligatoire))
- include("traite_formulaire.php")
- else include("formulaire.php")
- / valides est une fonction qui doit être
définie dans le script / - ?gt
51Récupérer les infos déjà saisies
- Directement dans le formulaire
- Attention le formulaire devient un script php!
- ltform action"script.php" method"get"gt
- Nom () ltinput type"text"
- name"obligatoiresnom"
- lt?php
- if(is_array(obligatoire) obligatoiresnom)
- echo("value\"obligatoiresnom\" ")
- ?gt
- size10 /gt
-
- lt/formgt
52Les Fichiers
- Comment y accéder ?
- Par le nom relatif "../../images/logo.gif"
- Par le nom absolu "/users/src2/dupont/file.txt"
- Par une URL "http//www.site.org/index.html"
- Pourquoi faire ?
- Charger des bibliothèque de fonctions
- Inclure un élément récurrent dun site web
- Créer des éléments dynamiques dans une page
53La fonction require
- La commande require(string nom_fichier) se
remplace elle-même par le contenu du fichier. - Elle est toujours effectuée même dans un if
- Utile pour charger en mémoire un script
contenant des fonctions usuelles.
54La fonction include
- La fonction include(string nom_fichier) inclus et
évalue le fichier spécifié en argument. - Contrairement à require, nest pas
systéma-tiquement effectuée. - Utile pour insérer un en-tête ou pied de page
récurrent dans un site web, pour exécuter un
script selon certaines conditions,
55Ouvrir un fichier
- Plusieurs mode douverture existent lecture,
écriture, lecture/écriture, - int fopen(string nom_fichier, string mode)
- Si le nom commence par "http" réalise une
connexion HTTP - Retourne un pointeur de fichier ou FALSE en cas
déchec. - Modes possibles 'r', 'w', 'a', 'w', 'a'
56Lire dans un fichier
- string fgets ( int fp, int length)
- retourne la chaîne lue jusqu'à la longueur
length - 1 octet, ou bien la fin du fichier, ou
encore un retour chariot (le premier des trois
qui sera rencontré). - array file ( string filename , int
use_include_path) - retourne le fichier dans un tableau. Chaque
élément du tableau correspond à une ligne du
fichier, et les retour-chariots sont placés en
fin de ligne.
57Écrire dans un fichier
- int fwrite ( int fp, string string , int
length) - écrit le contenu de la chaîne string dans le
fichier pointé par fp. Si la longueur length est
fournie, l'écriture s'arrêtera après length
octets, ou à la fin de la chaîne (le premier des
deux). - int fputs ( int fp, string str , int length)
- idem
58Fermer un fichier
- bool fclose ( resource fp)
- fclose() ferme le fichier fp.
- Retourne TRUE en cas de succès, et FALSE en cas
d'échec. - Le pointeur de fichier doit être valide, et avoir
été correctement ouvert par fopen()
59Exemple
- lt?php
- fpfopen("fichier.txt","r")
- if(! fp) // vérifie que le pointeur de fichier
est valide - echo("Impossible douvrir fichier.txt")
-
- else
- while (!feof(fp)) // répète jusquà la fin de
fichier - ligne fgets(fp, 256) // lit une ligne
- ligne rtrim(ligne) // enlève le retour
chariot - echo("ligneltbrgt")
-
- fclose(fp)
-
- ?gt
60Interface PHP /MySQLRetour sur les fonctions
61Plan
- PHP et les SGBD
- Se connecter à MySQL
- Exécuter une requête
- Traiter les erreurs
- Exploiter les résultats dune requête
- Fermer la connexion
- Retour sur les fonctions
62Accès aux Bases de Données
- MySQL, PostgreSQL, Sybase, mSQL, Oracle, ODBC,
etc. - Méthodes très similaires quelque soit le SGBD
interrogé. - En général, il faut suivre la séquence
- Connexion
- Requête
- Exploitation des résultats
- Fermeture de la connexion
63Connexion à un serveur MySQL
- Paramètres de connexion
- Nom ou adresse IP du serveur
- Port découte du serveur
- Nom dun utilisateur répertorié
- Mot de passe de cet utilisateur
- Fonction
- int mysql_connect(string serveur port,string
utilisateur,string secret) - Etablir une connexion avec serveur (MySQL), pour
un compte utilisateur, et de mot de passe secret.
- Renvoie une valeur (entier positif) qui peut
être utilisée ensuite pour dialoguer avec le
serveur. - int mysql_pconnect(idem)
- établit une connexion permanente
64Exemple
- lt?php
- Host" mysqlhost.info.unicaen.fr " // nom du
serveur - User fournier"//nom de l'utilisateur de la BD
- Passwd"toto" // mot de passe de l'utilisateur
- BD fournier" // nom de la base de données
- connexion mysql_connect("Host","User","Passwd
") - if (connexion)
- print "ltpgtConnexion établie !lt/pgt"
- else
- print "ltpgtErreur lors de la connexion ...lt/pgt"
- exit
-
- ?gt
65Sélectionner une BD
- bool mysql_select_db(string base ,int
identifiant de connexion) - Permet de se placer dans une base de données.
- Cest léquivalent de la commande USE base sous
mysql. - Exemple
- lt?php
- mysql_select_db(BD,connexion)
- ?gt
66Exécuter une requête (1)
- int mysql_query(string code,int identifiant de
connexion) - Adresse une requête SQL au serveur MySQL.
- Requête de texte code
- Renvoie un identificateur de résultat
- Vrai si la requête est valide
- Dans le cas d une clause SELECT, MySQL retourne
un identifiant de résultat à utiliser
ultérieurement dans les opérations de
consultation. - resultmysql_query(query)
- NB Résultat accessible avec la variable
result.
67Exemple
- lt?php
-
- mysql_select_db(BD) or die("Echec selection
BD") - requete "SELECT mois,jour,fete FROM fetes"
- resultat mysql_query(requete,connexion)
- ...
- ?gt
68Exécuter une requête (2)
- int mysql_db_query(string base, string requête,
int identifiant de connexion) - envoie une requête en précisant le nom de la base
de données à activer - mélange des deux fonctions précédentes
69Exemple
- lt?php
- requete "SELECT nom,age FROM etudiant"
- resultat mysql_db_query(BD,requete,connexion
) - // Équivaut à
- mysql_select_db(BD,connexion)
- requete " SELECT nom,age FROM etudiant"
- resultat mysql_query(requete,connexion)
- ?gt
70Traitement des erreurs
- Ajout dun opérateur _at_ évite la sortie du script.
- Fonction die() provoque linterruption du script.
- Fonctions
- int mysql_errno(int mid)
- Numéro de la dernière erreur
- string mysql_error(int mid)
- Texte de la dernière erreur
- mid identifiant de connexion valide
- retourné par une des fonctions mysql_connect() ou
mysql_pconnect().
71Exemple
- lt?php
- ...
- mid _at_mysql_connect(Host,User,Passwd) or
- die("Erreur connexion MySQL")
- echo "Identifiant de la connexion ",mid
- ...
- ?gt
72Exemple
- lt?php
- resultat mysql_query(requete,connexion)
- if (!resultat)
- print "ltpgtErreur lors de l'exécution de la
requête !ltbr /gt Code " . mysql_errno() . " -
Message " . mysql_error() ."lt/pgt" - else
- //on traite le résultat
-
- ?gt
73Exploiter les résultats
- array mysql_fetch_row(int result)
- Récupère une des lignes du résultat, et
positionne le curseur sur la ligne suivante. - La ligne est représentée sous forme dun tableau
(une liste de valeurs). - Accès aux données
- TableauIndice où les indices correspondent aux
champs utilisés dans la requête - NB result Résultat de requête
74Exemple
- lt?php
- requete "SELECT nom,age FROM etudiant"
- resultat mysql_query(requete,connexion)
- ligne mysql_fetch_row(resultat)
- print "ltpgtNom ligne0ltbr/gt\n"
- print "Age ligne1lt/pgt\n"
- ?gt
75mysql_fetch_array
- array mysql_fetch_array(int result)
- transforme la ligne courante en un tableau
associatif (clé/valeur) à indices numériques ou
nommés - accès aux données TableauIndice/Nom_Indice
où les indices correspondent aux champs utilisés
dans la requête
76Exemple
- lt?php
- requete "SELECT FROM etudiant"
- resultat mysql_query(requete,connexion)
- ligne mysql_fetch_array(resultat)
- print "ltpgtNom lignenomltbr /gt\n"
- print "Age ligneagelt/pgt\n"
- ?gt
77mysql_fetch_object
- object mysql_fetch_object(int identificateur de
résultat) - transforme la ligne courante en un objet
- accès aux données
- nomObjet-gtnomChamp (utilisé dans la requête)
- syntaxe recommandée !
- gère les alias sur les noms des champs
78Exemple
- lt?php
- requete "SELECT FROM etudiant"
- resultat mysql_query(requete,connexion)
- ligne mysql_fetch_object(resultat)
- print "ltpgtNom ligne-gtnomltbr /gt\n"
- print "Age ligne-gtagelt/pgt\n"
- ?gt
79Récupérer TOUTES les lignes du résultat
- Problème
- mysql_fetch_row, mysql_fetch_array,
mysql_fetch_object récupèrent uniquement la
première ligne du résultat - Appeler n fois la fonction ?
- Solution
- Utiliser une boucle (while ou for)
80Exemple
- lt?php
- requete "SELECT nom,age FROM etudiant"
- resultat mysql_query(requete,connexion)
- while (ligne mysql_fetch_object(resultat))
- print "ltpgtNom ligne-gtnomltbr /gt\n"
- print "Age ligne-gtagelt/pgt\n"
-
- ?gt
81Compter les lignes
- int mysql_num_rows(int result)
- nombre de lignes du résultat d'identifiant result
- int mysql_affected_rows(int identifiant de
connexion) - nombre de lignes affectées lors de la dernière
INSERT, UPDATE ou DELETE.
82Exemple
- requete "SELECT FROM etudiant"
- resultat mysql_query(requete,connexion)
- nblignes mysql_num_rows(resultat)
- print "ltpgtIl y a nblignes correspondant à votre
requête.lt/pgt" - requete "DELETE FROM etudiant WHERE
nom 'Dupond'" - resultat mysql_query(requete,connexion)
- nblignes mysql_affected_rows()
- print "ltpgtnblignes ont été supprimées.lt/pgt"
83Récupérer le dernier identifiant généré
automatiquement
- int mysql_insert_id()
- renvoie l'identifiant généré sur un champ de type
auto_increment à la suite d'un ordre INSERT - lt?php
- requete "INSERT INTO etudiant VALUES
('','nom','age')" - resultat mysql_query(requete,connexion)
- if (resultat)
- print "ltpgtLa fiche numéro " . mysql_insert_id()
. " a été créée.lt/pgt" -
- ?gt
84Libérer la mémoire et fermer la connexion
- Libérer Mémoire allouée au résultat dune requête
- int mysql_free_result(int result)
- libère la mémoire allouée au résultat
d identifiant result - Lidentifiant ne peut plus être employé
- Fermeture de la connexion
- int mysql_close(int mid)
- ferme la connexion associée à mid ou la dernière
connexion ouverte (si pas d argument) - NB Fermer la connexion explicitement est
optionnel.
85Exemple
- lt?php
- connexion mysql_connect("mysqlhost.info.unicaen
.fr", - "chahir","toto")
- mysql_select _db("chahir",connexion)
- requete "SELECT nom, age FROM etudiant"
- resultat mysql_query(requete,connexion)
- while (ligne mysql_fetch_object(resultat))
- print "ltpgtNom ligne-gtnomltbr /gt\n"
- print "Age ligne-gtprenomlt/pgt\n"
-
- mysql_free_result(resultat)
- mysql_close(connexion)
- ?gt
86Autres API PHP MySQL
- Nombre de colonnes
- int mysql_num_fields(int result)
- Ex. nbcol mysql_num_fields(result)
- Accès aux attributs d'un tuple
- mysql_result(result,no_tuple,nom-champ)
- Ex. nommysql_result(result,0,'nom')
- http//www.php.net/manual/en/ref.mysql.php
87Exemple
- mysql_connect( mysqlhost', chahir', toto')
- mysql_select_db('chahir')
- requete"select nom, age from etudiant"
- resultmysql_query(requete)
- nmysql_num_rows(result)
- echo n.' etudiant(s) dans la base \n'
- for (i0 iltn i)
- nommysql_result(result,i,'nom')
- agemysql_result(result,i,'age')
- echo '\t'.nom.', '.age.' ans\n'
-
- mysql_close()
88Les références en PHP
- En PHP, les références sont destinées à appeler
le contenu d'une variable avec un autre nom. - lt?phpa 'old'b aa 'new'//La
valeur de b devient new - c b// copie de valeur simplea 'new
new'//b devient 'new new, c reste
'new'a0 'old'b ac b//copie
simplea0 'new'// b0 devient - // c0 reste 'old'
- ?gt
89Passage darguments par référence (1)
- Par défaut, les arguments sont passés à la
fonction par valeur. - Si vous voulez qu'un argument soit toujours passé
par référence, vous pouvez ajouter un '' devant
l'argument dans la déclaration de la fonction - lt?php function add_some_extra(string)
string . ', et un peu plus.' str
'Ceci est une chaîne' add_some_extra(str)
echo str / affiche 'Ceci est une
chaîne, et un peu plus. /?gt
90Passage darguments par référence (2)
- Si vous souhaitez passer une variable par
référence à une fonction mais de manière
ponctuelle, vous pouvez ajouter un '' devant
l'argument dans l'appel de la fonction
lt?php function foo (bar) bar . ',
et un peu plus.' str 'Ceci est une
chaîne' foo (str) echo str// affiche
'Ceci est une chaîne' foo (str) echo s
tr / affiche 'Ceci est une chaîne, et un peu
plus. /?gt
91Valeur par défaut
- Vous pouvez définir comme en C des valeurs par
défaut pour les arguments de type scalaire - lt?php function servir_apero (type "ricard
") return "Servir un verre de type.\n"
echo servir_apero() echo servir_apero(
"whisky")?gt