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 €