Le langage PHP

publicité
L3 Module Libre
Année universitaire 2005-2006
Initiation à la Bioinformatique
Jean-Michel RICHER
Troisième Cours
Le Langage PHP
Application au traitement des
données
Plan
1. Rappel
2. Le Langage PHP
3. Utiliser PHP pour attaquer MySQL
4. PHP et les pages Web
Rappels du cours précédent
 Les SGBD (Systèmes de Gestion de Bases de Données)
permettent d’organiser le stockage d’informations.
 Le langage SQL (Structured Query Language) permet
d’interroger les bases de données relationnelles :
SELECT cl_nom, cl_prenom
FROM clients
WHERE cl_ville = “Angers“;
Les données sont récupérées sous forme de
tables
(n lignes * m colonnes)
Langages de script
Un certain nombre de traitements ne peuvent pas être
réalisés en SQL (ex. afficher les commandes)
Pour pouvoir les réaliser il faut faire appel à un langage
(autre que SQL) qui est capable d’interagir avec un SGBD
Parmi les langages susceptibles d’être utilisés on trouve :
 Perl
 Python
 PHP
Il s’agit de langages de script (interprétés)
Le Langage PHP
Les bases du langage
Le langage PHP
1994 Rasmus Lerdorf
pour les besoins des pages web personnelles
signifiait Personal Home Page
1997 réécrit par Zeev Suraski et Andi Gutmans pour donner
PHP3
PHP : Hypertext Preprocessor
Avantages de PHP
 Il s’intègre facilement aux pages web
 gratuit (Open Source)
 syntaxe empruntée au langage C et à Perl
 nombreuses bibliothèques de fonctionnalités (BD,
dessin, réseau)
Le langage PHP
PHP peut être utilisé de deux manières différentes :
 soit comme un langage de programmation traditionnel (en
ligne de commande)
 soit intégré dans une page web
Exemple de programme PHP
Fichier bonjour.php
<?php
echo “Bonjour“;
?>
>php bonjour.php
Bonjour
Les variables
 Les variables sont toutes préfixées par le symbole $
<?php
$annee = 1970;
$nom = “Jean-Michel“;
\n : retour à la ligne
echo “Bonjour, je m’appelle $nom\n“;
echo “je suis né en $annee\n”;
?>
 Les variables non sont pas typées en PHP
<?php
$valeur = 1;
$valeur = “Coucou“;
?>
Une variable peut prendre n’importe
quelle valeur (entier, réel, chaîne, tableau)
Les instructions de base
Le test conditionnel : if (condition) { … } else { … }
If ($valeur > 1) {
echo “la valeur est supérieure à 1“;
}
If ($valeur < 1) {
echo “la valeur est inférieure à 1“;
}
If ($valeur == 1) {
echo “la valeur est égale à 1“;
}
If ($valeur != 1) {
echo “la valeur est différente de 1“;
}
If ($valeur == 1) {
echo “la valeur est égale à 1“;
} else {
echo “la valeur est différente de 1“;
}
Les instructions de base
La boucle tant que : while (condition) { instructions }
$i = 1;
$somme = 0;
while ($i <= 10) {
$somme = $somme + $i;
$i = $i + 1;
}
echo “Somme des entiers de 1 à 10 = $somme “;
Les instructions de base
La boucle pour : for (initialisation ; condition d’arrêt; incrémentation) { .. }
$somme = 0;
for ($i = 1; $i <= 10; $i = $i + 1) {
$somme = $somme + $i;
}
echo “Somme des entiers de 1 à 10 = $somme “;
Pour i partant de 1 et tant que i <= 10,
ajouter 1 à i après chaque itération
Les tableaux
Il existe plusieurs manières de manipuler les tableaux
$tableau = array();
$tableau[1] = 1;
$tableau[2] = 2;
$tableau[3] = 3;
print_r( $tableau );
$tableau = array(1, 2, 3);
foreach($tableau as $element) {
echo “$element \n“;
}
$tableau = array();
array_push($tableau,1);
array_push($tableau,2);
array_push($tableau,3);
reset( $tableau );
while (list($cle,$val) = each($tableau)) {
echo “tableau[ $cle ] = $val \n“;
}
Le Langage PHP
Accès aux bases de données
Accéder à une Base de Données
1) Établir la connexion avec le serveur MySQL
Fichier database.php
function database_open() {
$host = “richer.info-ua“;
$user = “audrey“;
$pass = “ce1mdpp“;
$db = “test“;
$acces = mysql_connect($host, $user, $pass);
if (!$acces) die(“Erreur connexion serveur mysql“);
mysql_select_db($db) or die(“Sélection bd impossible“);
return $acces;
}
function database_close($link) {
mysql_close($link);
}
Accéder à une Base de Données
2) Exécuter une requête MySQL
require(‘database.php’);
$link = database_open();
$query = “SELECT cl_nom, cl_prenom FROM clients;“;
$result = mysql_query( $query );
if (!$result) {
echo “Erreur : “ . mysql_error();
} else {
while ($record = mysql_fetch_row($result)) {
echo “$record[1] $record[0] \n“;
}
}
database_close($link);
Exercices
1) Afficher le nom des clients qui ont réalisé une commande de plus de 100 €
ainsi que le montant de la commande. Indiquez le montant total des
commandes de plus de 100 €
PHP et pages Web
PHP fonctionne du côté serveur
Internet ou
Réseau local
PHP et pages Web
Pour utiliser PHP, on peut
On introduit du code php dans un fichier d’extension .html ou .php
Index.html ou index.php
<html>
<head> … </head>
<body>
<h2>
<?php
$jour = date(“d/m/y");
echo “Bonjour, nous sommes le $jour"
?>
</h2>
</body>
</html>
Exercices
Reprendre la requête précédente et créer une page html qui permet de
visualiser les commandes :
1) Afficher le nom des clients qui ont réalisé une commande de plus de 100 €
ainsi que le montant de la commande. Indiquez le montant total des
commandes de plus de 100 €
Téléchargement
Study collections