Programmation avancée 10
Définir une fonction
¾Mot clé "function" + nom des arguments + instructions :
function affiche($nom,$prénom) {
print("Nom = $nom<BR>");
print("Prénom = $prénom<BR>");
}
¾Appelle de la fonction avec des valeurs :
affiche("Dupond","Jean");
¾Produit le code HTML suivant :
Nom = Dupond<BR>Prénom = Jean<BR>
Programmation avancée 11
Structure d'un programme
¾Identique au langage Java / JavaScript / C :
•conditionnelles simples :
if (condition) instruction;
•alternatives :
if (condition) { instructions; }
else { instructions; };
•boucles :
for ($i=6; $i<12; $i++) { ... };
while (conditions) { ... };
Programmation avancée 12
La diffusion d'information
¾Pour diffuser des données sur une page Web en PHP,
il faut :
•se connecter à un serveur (PostgreSQL ici)
•demander l'exécution d'une requête
•afficher un entête
•afficher les données :
Öboucle : pour chaque ligne
Ömise en forme HTML
•afficher un pied de page
•fermer la connexion
Programmation avancée 13
Accéder à un serveur PostgreSQL
¾Connexion à une base de donnée
$c = pg_connect("host=nom-du-serveur
dbname=nom-de-la-base
user=nom-de-login
password=mot-de-passe");
•la variable $c contient un numéro de connexion
•$c est nulle (booléen faux) si la connexion a échoué :
if (!$c) {
print("Erreur de connexion.");…
}
Programmation avancée 14
Exécuter une requête
¾On exécute une requête SQL à travers la connexion crée :
$result = pg_Exec($c,"requête SQL;");
•$result est un tableau à deux dimensions contenant la
table résultant de la requête (éventuellement vide)
•$result est nul si la requête a échoué :
if (!$result) {
print("Erreur dans la requête.");...
}
Programmation avancée 15
Exemple de requêtes
$c = pg_connect("host=iuthaprojet
dbname=biblio
user=biblio");
if (!$c) {
print("Echec de la connection");
exit;
}
$result = pg_exec($,
"SELECT titre,prix FROM livres;");
Programmation avancée 16
Afficher le résultat d'une requête
¾Il faut rechercher le nombre de lignes :
$nlignes = pg_numrows($result);
¾Il faut faire une boucle pour afficher chaque ligne :
for ($i=0;$i < $n;$i++) {
extraire les données de la ligne $i
produire le HTML pour la ligne $i}
¾Il faut extraire les données ligne par ligne :
list($case1,$case2,…,$caseN) =
pg_fetch_row($result,$i);
Programmation avancée 17
Exemple : affichage simple
$result = pg_exec($,
"SELECT titre,prix FROM livres;");
$nlignes = pg_numrows($result);
for ($i=0;$i<$nlignes;$i++) {
list($titre,$prix) =
pg_fetch_row($result,$i);
print("$titre $prix<BR>");
}
Programmation avancée 18
Exemple pour afficher une table
print("<TABLE>");
print("<TR><TH>ISBN</TH><TH>Prix</TH></TR
>");
for ($i=0;$i<$nlignes;$i++) {
list($titre,$prix) =
pg_fetch_row($result,$i);
print("<TR><TD>$titre</TD>");
print("<TD
ALIGN='RIGHT'>$prix</TD></TR>");
}
print("</TABLE>");