Cours 12 Publication dynamique de contenu d'une base de données sur le Web avec PHP

Documents pareils
CREATION WEB DYNAMIQUE

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP 4 PARTIE : BASE DE DONNEES

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Attaques applicatives

Mysql avec EasyPhp. 1 er mars 2006

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

PHP 5. La base de données MySql. A. Belaïd 1

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

BTS/CGO P10 SYSTEME INFORMATION Année

1. Base de données SQLite

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Pratique et administration des systèmes

PHP 5.4 Développez un site web dynamique et interactif

Mysql. Les requêtes préparées Prepared statements

Gestion de stock pour un magasin

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

PROJET 1 : BASE DE DONNÉES REPARTIES

A QUOI SERVENT LES BASES DE DONNÉES?

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

RÉALISATION D UN SITE DE RENCONTRE

Bases de Données relationnelles et leurs systèmes de Gestion

Présentation du PL/SQL

PHP et les Bases de données - Généralités

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmation Web. Madalina Croitoru IUT Montpellier

Stockage du fichier dans une table mysql:

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

SYSTÈMES D INFORMATIONS

Bases de données relationnelles

Dans l'article précédent, vous avez appris

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

1 Position du problème

Algorithmique et structures de données I

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Introduction au langage C


INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Django et PostgreSQL sous la charge

Bases de données et sites WEB Licence d informatique LI345

A QUOI SERVENT LES BASES DE DONNÉES?

UE8 Systèmes d information de gestion Corrigé indicatif

PHP. PHP et bases de données

Compétences Business Objects

SQL Historique

Introduction à l algorithmique et à la programmation M1102 CM n 3

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Introduction à JDBC. Accès aux bases de données en Java

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Le langage SQL (première partie) c Olivier Caron

TP Administration Oracle

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Le Langage De Description De Données(LDD)

CATALOGUE FORMATIONS DOMAINE Bases de données

CATALOGUE DES FORMATIONS 2014

HTML. Notions générales

Le langage SQL Rappels

Bases de données avancées

SUPPORT DE COURS / PHP PARTIE 3

Organigramme / Algorigramme Dossier élève 1 SI

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Algorithmique I. Algorithmique I p.1/??

Les outils de création de sites web

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Les BASES de DONNEES dans WampServer

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

SII Stage d informatique pour l ingénieur

SCI6052 Information documentaire numérique École de bibliothéconomie et des sciences de l information

Hébergement de site web Damien Nouvel

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

PDO : PHP Data Object 1/13

Les Utilisateurs dans SharePoint

EndNote Basic. Un logiciel en ligne pour gérer les références bibliographiques. Sandrine(Wolff(&(David(Vivarès( Définition

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

SAP BusinessObjects Web Intelligence (WebI) BI 4

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

BASES DE DONNEES TP POSTGRESQL

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Olivier Mondet

Initiation à la programmation en Python

Transcription:

École de bibliothéconomie et des sciences de l information SCI6306 Bases de données documentaires Cours 12 Publication dynamique de contenu d'une base de données sur le Web avec PHP Faculté des arts et des sciences 25 novembre 2016 Christine Dufour, 2016 1/19

SCI6306 2/19 Au programme aujourd hui Publication Web Processus Fichier PHP pour publication Code PHP pour publier : blocs, processus et exemples Exercices Note : les deux prochains (et derniers) cours se feront en laboratoire

SCI6306 3/19 Processus pour la publication Web Balises HTML et codes PHP entremêlés pour générer le contenu :. Balises HTML pour les éléments fixes. Codes PHP pour les éléments dynamiques Page HTML Fichier PHP (publication) Données structurées en champs dans une(des) table(s) Côté Client Côté Serveur Base de données

SCI6306 4/19 Fichier PHP pour publication Web Différent de celui pour l'enregistrement (saisie) Enregistrement : requêtes INSERT INTO, UPDATE ou DELETE pour manipuler les données (ajout, modification, suppression) d une base de données Publication : requêtes SELECT pour extraire des données d une base de données Ce qui peut être publié Tout ce que l'on peut générer par une requête SQL : une donnée ou une table de données Formatage des données (en texte, en tableau, en liste à puces, etc.) fait par le biais du HTML

SCI6306 5/19 Code PHP pour publier : Blocs 6 blocs pour afficher des données extraites d une base de données X à partir d une requête Y 1. Connexion avec la base de données X 2. Définition d'une requête Y 3. Exécution de la requête Y 4. Affichage des résultats de la requête Y 5. Fermeture de la requête Y 6. Fermeture de la base de données X

SCI6306 6/19 Structures algorithmiques de base Structures logiques (conditionnelles) Aiguillage simple (SI ALORS SINON) Aiguillage complexe (CHOIX MULTIPLES) Structures répétitives (boucles) Nombre de cycles inconnus (TANT QUE) Nombre de cycles prédéterminés (POUR) Utiles tant pour la saisie via Web que pour la publication Structures qui existent dans tous les langages procéduraux

SCI6306 7/19 Structures algorithmiques de base SI ALORS SINON (aiguillage simple) Fonctionnement Exécute minimalement un bloc d'instructions si la condition est vraie; Peut aussi inclure un bloc d'instructions si la condition est fausse Structure générique (forme complète en PHP*) IF (condition) {Bloc d'instructions à exécuter si la condition est vraie} ELSE Exemple {Bloc d'instructions facultatif si la condition est fausse} à exécuter Pour vérifier la valeur d'un contrôle et définir des actions différentes en fonction de cette valeur * Rappel forme compacte pour affichage : (condition?élément retourné si vrai:élément retourné si faux)

SCI6306 8/19 Structures algorithmiques de base CHOIX MULTIPLES (aiguillage complexe) Fonctionnement Exécute différents blocs d'instructions en fonction des valeurs prises par une variable. Structure générique (PHP) SWITCH (variable) { CASE valeur1: Bloc d'instructions à exécuter si variable = valeur1; break; [ ] DEFAULT: Bloc d'instructions à exécuter si variable = autres valeurs; } Exemple Pour personnaliser l'affichage des données en fonction des différentes valeurs prises par un champ. Note : pourrait aussi se faire par une série de IF imbriqués mais cela devient rapidement compliqué lorsqu'il y a plusieurs valeurs à tester. Exemple : http://dufour.ebsi.umontreal.ca/algo/condition.php Page PHP : http://cours.ebsi.umontreal.ca/sci6306/docs/sci6306_c12_condition.pdf

SCI6306 9/19 Structures algorithmiques de base TANT QUE (boucle avec répétitions inconnues) Fonctionnement Exécute un bloc d'instructions tant que la condition demeure vraie Structure générique (PHP) WHILE (condition) {Bloc d'instructions à exécuter} Exemple Particulièrement utile pour passer à travers les enregistrements dans une table de résultats retournée par une requête SQL

SCI6306 10 /19 Structures algorithmiques de base POUR (boucle avec répétitions connues) Fonctionnement Exécute un bloc d'instructions de manière répétitive, à l'intérieur d'une boucle allant d'une valeur de départ à une valeur de fin. Structure générique (PHP) FOR (valeur de départ; valeur de fin; valeur de l'incrémentation) {Bloc d'instructions à exécuter} Exemple Autre manière pour passer à travers l ensemble des enregistrements dans une table de résultats retournés par une requête SQL lorsque l'on connait le nombre de lignes que l'on veut. Exemple : http://dufour.ebsi.umontreal.ca/algo/repetition.php Page PHP : http://cours.ebsi.umontreal.ca/sci6306/docs/sci6306_c12_repetition.pdf

SCI6306 11 /19 Code PHP pour publier : processus [1/5] Étape 1 (BLOCS 1, 2, 3) Préparer la requête SQL (visualiser la table de résultats) Étape 2 (BLOC 4) Préparer le code HTML pour afficher une ligne de la table des résultats Table de résultats PRENOM Jean Hop NOM Peupu Lavie Traitement de la table de résultats Mais pourquoi??? Rappel : une table de résultats est lue de manière linéaire, ligne par ligne! Page Web résultante Étape 3 (BLOC 4) Identifier les éléments HTML qui se répéteront pour chaque ligne de la table des résultats 1. Ligne 1 Jean 2. Ligne 2 Hop Peupu Lavie Voici la liste des répondants : Répondant : Jean Peupu Répondant : Hop Lavie Étape 4 (BLOCS 4, 5, 6) Insérer le code PHP (acétates suivantes)

SCI6306 12 /19 Étape 2 : Code PHP Code PHP pour publier : processus [2/5] Exemple (INSCRIP) : je veux faire afficher pour chacun des cours, dans un paragraphe, son horaire et son statut : Le cours optionnel 2001 Histoire 101 se donne le 1 e jour de la semaine, à 09:00:00 heure. Étape 1 (BLOCS 1, 2, 3) Préparer la requête SQL (visualiser la table de résultats) SELECT no_cours, titre, jour, heure, statut FROM cours ORDER BY no_cours; NO_ TITRE JOUR HEURE STATUT COURS 20001 Histoire 101 1 09:00:00 optionnel 20002 Éthique 302 1 13:00:00 obligatoire Étape 2 (BLOC 4) Préparer le code HTML pour afficher une ligne de la table des résultats Étape 3 (BLOC 4) Identifier les éléments HTML qui se répéteront pour chaque ligne de la table des résultats Forme spécifique (pour la première ligne) <p>le cours optionnel <strong>20001 Histoire 101</strong> se donne le 1 e jour de la semaine, à 09:00:00 heure.</p> Forme générique (pour toutes les lignes; italique = données dynamiques) <p>le cours statut <strong>no_cours titre</strong> se donne le jour e jour de la semaine, à heure heure.</p> DÉBUT BOUCLE <p>le cours statut <strong>no_cours titre</strong> se donne le jour e jour de la semaine, à heure heure.</p> FIN BOUCLE Étape 4 (BLOCS 4, 5, 6) Insérer le code PHP (acétates suivantes) 1. Code PHP pour la ligne de résultat générique 2. Code PHP pour la boucle 3. Code PHP pour l'ensemble des blocs

SCI6306 13 /19 Code PHP pour publier : processus [3/5] echo $donnees['statut']; echo $donnees['titre']; <p>le cours statut <strong>no_cours titre</strong> se echo $donnees['no_cours']; donne le jour e jour de la semaine, à heure heure.</p> echo $donnees['jour']; echo $donnees['heure']; Résultat final <p>le cours echo $donnees['statut']; <strong> echo $donnees['no_cours']; echo $donnees['titre'];</strong> se donne le echo $donnees['jour'];<sup>e</sup> jour de la semaine, à echo $donnees['heure']; heure.</p> Code PHP pour la ligne générique

SCI6306 14 /19 Code PHP pour publier : processus [4/5] while ($donnees = $req_cours->fetch()) { <p>le cours echo $donnees['statut']; <strong> echo $donnees['no_cours']; echo $donnees['titre'];</strong> se donne le echo $donnees['jour'];<sup>e</sup> jour de la semaine, à echo $donnees['heure'];.</p> } Code PHP pour la boucle

SCI6306 15 /19 Code PHP pour publier : processus [5/5] Blocs Bloc 1 PHP include "App_Data/ouverture_bd.php"; Bloc 2 Bloc 3 Bloc 4 Bloc 5 $req_cours = $bdd->prepare('select no_cours, titre, jour, heure, statut FROM cours ORDER BY no_cours;'); $req_cours->execute(); while ($donnees = $req_cours->fetch()) { <p>le cours echo $donnees['statut']; <strong> echo $donnees['no_cours']; echo $donnees['titre'];</strong> se donne le echo $donnees['jour'];e jour de la semaine, à echo $donnees['heure'];.</p> } $req_cours->closecursor(); Bloc 6 $bdd=null; Code PHP pour l'ensemble des blocs

SCI6306 16 /19 Code PHP pour publier : autre exemple [1/3] Exemple (INSCRIP) : je veux produire la liste des étudiants inscrits à un cours : Bretécher, Claire (10002) Asimov, Isaac (10004) Étape 1 (BLOCS 1, 2, 3) Préparer la requête SQL (visualiser la table de résultats) Étape 2 (BLOC 4) Préparer le code HTML pour afficher une ligne de la table des résultats Étape 3 (BLOC 4) Identifier les éléments HTML qui se répéteront pour chaque ligne de la table des résultats SELECT DISTINCT etud.no_etud, nom FROM etud, suit WHERE etud.no_etud=suit.no_etud ORDER BY etud.no_etud; Forme spécifique (pour la première ligne) <ul> <li>bretécher, Claire (10002)</li> </ul> Forme générique (pour toutes les lignes) <ul> <li>nom (no_etud)</li> </ul> <ul> DÉBUT BOUCLE <li>nom (no_etud)</li> FIN BOUCLE </ul> NO_ETUD NOM 10002 Bretécher, Claire 10004 Asimov, Isaac Étape 4 (BLOCS 4, 5, 6) Insérer le code PHP (acétates suivantes) 1. Code PHP pour la ligne de résultat générique 2. Code PHP pour la boucle 3. Code PHP pour l'ensemble des blocs

SCI6306 17 /19 Code PHP pour publier : autre exemple [2/3] <ul> while ($donnees = $req_etudiant->fetch()) { <li> echo $donnees['nom']; ( echo $donnees['no_etud'];)</li> } </ul> Code PHP pour la ligne générique et pour la boucle

SCI6306 18 /19 Code PHP pour publier : autre exemple [3/3] Blocs Bloc 1 PHP include "App_Data/ouverture_bd.php"; Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 $req_etudiant = $bdd->prepare('select DISTINCT etud.no_etud, nom FROM etud, suit WHERE etud.no_etud=suit.no_etud ORDER BY etud.no_etud;'); $req_etudiant->execute(); <ul> while ($donnees = $req_etudiant->fetch()) { <li> echo $donnees['nom']; ( echo $donnees['no_etud'];)</li> } </ul> $req_etudiant->closecursor(); $bdd=null; Code PHP pour l'ensemble des blocs

SCI6306 19 /19 Exercices collectifs en classe Exercice 1 : Refaire le processus pour un autre besoin (production d'un tableau présentant la moyenne obtenue par cours) Exercice 2 : Examiner des fichiers PHP pour la publication Web pour comprendre à quoi ils servent