UTILISATION D'UNE BASE DE DONNÉES



Documents pareils
Pratique et administration des systèmes

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

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

TP JAVASCRIPT OMI4 TP5 SRC

Tutoriel compte-rendu Mission 1

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

STID 2ème année : TP Web/PHP

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

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

Mysql avec EasyPhp. 1 er mars 2006

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Stockage du fichier dans une table mysql:

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Installation d un hébergement Web à domicile

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

UwAmp. Serveur d'evaluation

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)

Initiation à html et à la création d'un site web

Manuel d utilisateur du site de covoiturage «Etucovoiturage»

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Cours: Administration d'une Base de Données

Programmation Web. Madalina Croitoru IUT Montpellier

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Démonstration de la mise en cache via HTML 5 sur iphone

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

PHP 4 PARTIE : BASE DE DONNEES

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Sage CRM. Sage CRM 7.3 Guide du portable

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

CREATION WEB DYNAMIQUE

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Programmation Web TP1 - HTML

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Direction des Systèmes d'information

Mise en place d un serveur Proxy sous Ubuntu / Debian

OpenOffice Base Gestionnaire de Base de Données

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

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

Sélection du contrôleur

Tutoriel Drupal version 7 :

1. La plate-forme LAMP

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Olivier Mondet

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

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Installation d'un serveur FTP géré par une base de données MySQL

AC PRO SEN TR «services TCP/IP : WEB»

I. MySQL : Serveur et SGBD

progecad NLM Guide de l'utilisateur

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

Tutoriel de formation SurveyMonkey

Administration du site (Back Office)

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

2) Téléchargement de l'application pour contrôler vos caméras :

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Attaques applicatives

Administration du Client Web

TAGREROUT Seyf Allah TMRIM

(1) Network Camera

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

PDO : PHP Data Object 1/13

Les BASES de DONNEES dans WampServer

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Optimiser pour les appareils mobiles

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Comment créer son propre monitoring. (Version simple PHP)

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Séance d ED n 5 : HTML et JavaScript

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Installation locale de JOOMLA SEPIA

Installation d un serveur de messagerie en local. Télécommunications & réseaux. Nom-prénom: Fiche contrat

Insérer des images dans Base

Il est courant de souhaiter conserver à

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

WEB page builder and server for SCADA applications usable from a WEB navigator

DOCUMENTATION VISUALISATION UNIT

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

CASE-LINUX MAIL - ROUNDCUBE

Passerelle EnOcean IP avec services Cloud

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

1 Introduction et installation

Installation des outils OCS et GLPI

Configurez votre Neufbox Evolution

Pour les caméras IP de modèles : QSTC201 QSTC211. Surveillance à distance via Internet Guide de démarrage

Transcription:

Lycée Felix Le Dantec - Lannion NOM : PRÉNOM : UTILISATION D'UNE BASE DE DONNÉES TSTI2D TP7-4h CLASSE : Condition : Travail en binôme; durée 4 heures Matériel : un ordinateur sous Ubuntu avec LAMP installé un Arduino Uno, un shield ethernet, un capteur de température TMP36 Documents : le sujet du TP le cours sur les bases de données L'objectif du TP est de découvrir l'utilisation d'une base de données. 1. Installation de phpmyadmin Pour créer nos bases de données nous utiliserons phpmyadmin, un des outils les plus connus permettant de manipuler une base de données MySQL. Installez phpmyadmin en tapant sous la console la commande : sudo apt-get install phpmyadmin Avec la barre espace, cochez la case Apache 2 comme serveur web à reconfigurer. Répondez OUI à la question «faut-il configurer la base de données de phpmyadmin?» Entrez le mot de passe sti2dsin. Entrez à nouveau le mot de passe sti2dsin (2 fois) pour la connexion à phpmyadmin. Démarrez Firefox et allez à l'url localhost/phpmyadmin/. Connectez-vous à la base de données en utilisant le compte utilisateur root, mot de passe sti2dsin. L'écran suivant apparaît : Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 1/12

2. Construire une table dans la base de données Vous allez créer une base de données sti2d, composée d'une table matable constituée de 5 champs, afin d'y enregistrer les données du formulaire vu dans le TP précédent. id nom prenom sexe an_naissance Cliquez sur l'onglet Bases de données puis créez une nouvelle base sti2d : Dans la partie gauche de l'écran, sélectionnez maintenant cette nouvelle base sti2d. Puis créez une nouvelle table matable composée de 5 champs (5 colonnes) : 5 Créez alors les 5 champs comme ci-dessous puis cliquez sur en bas de la fenêtre sur Sauvegarder. cochez pour cette ligne la case AI (Autoincrémentation) Type des variables : - int (4 octets) : entier - varchar : chaîne de caractères (de 0 à 65535 caractères) - char : chaîne de caractères courte (de 0 à 255 caractères) - smallint (2 octets) : entier de -32768 à +32767 Voilà, la table matable est prête. Il est possible d'écrire, lire ou modifier des données à partir de requêtes écrites en langage SQL. Cliquez sur l'onglet SQL puis sur INSERT et tapez la ligne ci-dessous. Cliquez alors sur l'onglet Afficher et vérifiez que vous venez bien d'insérer une première entrée dans la table. INSERT INTO `matable`(`id`, `nom`, `prenom`, `sexe`, `an_naissance`) VALUES (1,"Dupond","pierre","M",1994) Nous allons, dans le chapitre suivant, voir qu'il est possible d'écrire dans la table à partir d'un programme en PHP. Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 2/12

3. Écrire dans une base de données en PHP Vous allez réutiliser le formulaire du TP PHP. On vous donne cidessous le fichier index.html. Enregistrez ce fichier dans le dossier /var/www de votre poste. index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>mon super site</title> </head> <body> <form action="enregistrement.php" method="post"> Nom: <input type="text" name="nom" size="20"/><br/> Prénom : <input type="text" name="prenom" size="20"/><br/> Sexe : <input type="radio" name="sexe" value="m" /> Masculin <input type="radio" name="sexe" value="f" /> Féminin <br/> Année de naissance : <select name="annee"> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> </select> <br/> <input type="submit" value="envoyer"/><br/> </form> </body> </html> Le formulaire appelle un fichier enregistrement.php dont le code est donné ci-dessous. Un autre fichier identifiants.php contient les identifiants de connexion à la base de données, ce qui garantit une meilleure sécurité. Enregistrez ces deux fichiers dans le dossier /var/www de votre poste. enregistrement.php <?php /* récupération des données du formulaire */ $nom = $_POST['nom']; $prenom = $_POST['prenom']; $sexe = $_POST['sexe']; $an_naissance = $_POST['annee']; include ('identifiants.php'); /* connexion à la bdd */ $link = mysqli_connect($host,$user,$pass,$bdd); if (!$link) die('echec de connexion au serveur de base de données : '. mysqli_connect_error(). '('. mysqli_connect_errno(). ') '); echo 'base connectée... <br\>'; /* envoi d'une requête pour un encodage en UTF-8 */ $query= "SET NAMES UTF8"; Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 3/12

mysqli_query($link,$query); /* envoi d'une requête pour mettre à jour la bdd */ $query = "INSERT INTO matable (nom,prenom,sexe,an_naissance) VALUES ('$nom','$prenom','$sexe','$an_naissance')"; mysqli_query($link,$query);?> /* déconnexion de la bdd */ mysqli_close($link); <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>mon super site</title> </head> <body> <p>pour revenir à la page formulaire, <a href="index.html">cliquez ici</a></p> </body> </html> identifiants.php <?php /* identifiants de connexion */ $host = "localhost"; $user = "root"; $pass = "sti2dsin"; $bdd = "sti2d";?> Ouvrez le formulaire dans Firefox en tapant l'adresse 127.0.0.1. Remplissez le formulaire puis cliquez sur Envoyer. Allez ensuite voir dans votre base de données à l'aide de phpmyadmin que les valeurs entrées ont bien été ajoutées à la table matable de la bdd sti2d. Quel est le rôle de la ligne $nom = $_POST['nom'] ;? Quelle ligne permet de se connecter à la bdd? Quel est le rôle de la requête "INSERT INTO matable (nom,prenom,sexe,an_naissance) VALUES ('$nom', '$prenom', '$sexe', '$an_naissance')"? Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 4/12

4. Lire des éléments d'une base de données en PHP Vous allez maintenant lire et afficher le contenu de la table dans une page web. On vous donne ci-dessous le fichier lecture.php. Enregistrez ce fichier dans le dossier /var/www de votre poste. Ouvrez ce fichier dans Firefox et vérifiez son bon fonctionnement. lecture.php <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>lecture de la bdd</title> </head> <body> <?php include ('identifiants.php'); /* connexion à la bdd */ $link = mysqli_connect($host,$user,$pass,$bdd); if (!$link) die('echec de connexion au serveur de base de données : '. mysqli_connect_error(). '('. mysqli_connect_errno(). ') '); echo 'base connectée... <br/>'; /* envoi d'une requête pour un encodage en UTF-8 */ $query= "SET NAMES UTF8"; mysqli_query($link,$query); /* envoi d'une requête pour lire la bdd */ $query = "SELECT * FROM matable "; // requête SQL if ($reponse = mysqli_query($link, $query)) $nb = mysqli_num_rows($reponse); /* nombre de lignes du résultat est stocké dans la variable php $ reponse */ echo 'Nombre de personnes dans la base : '.$nb.'<br/>'; if ($nb!=0) while($ligne = mysqli_fetch_array($reponse)) /*les valeurs de nom sont lues dans le tableau $ligne['nom'] et stockées dans la variable &nom mais ne sont pas conservées*/ $nom = $ligne['nom']; $prenom = $ligne['prenom']; echo $nom.' - '.$prenom.' - '.'<br />'; </body> </html>?> mysqli_free_result($reponse); mysqli_close($link); Quel est le rôle de la ligne $query = "SELECT * FROM matable ";? // libération des résultats Quel est le rôle de la ligne while($ligne = mysqli_fetch_array($reponse))? Modifiez le programme afin d'afficher à l'écran tous les champs de la table matable. Testez et faîtes valider le bon fonctionnement par le professeur. Validation prof : Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 5/12

5. Arduino et base de données L'objectif de ce chapitre est d'effectuer des mesures de température, à l'aide d'un Arduino et d'un capteur de température TMP36, toutes les 20 secondes, et d'enregistrer les mesures dans une base de données. Serveur LAMP Navigateur web Bdd Pour ce faire, vous devez : connecter un shield ethernet sur un Arduino UNO ; câbler un capteur de température TMP36 sur la broche A0 de l'arduino ; modifier le programme Arduino donné ci-dessous et programmer l'arduino ; créer une table temp dans la base sti2d de votre poste avec 4 champs : id, date, heure, temperature ; écrire un programme enregistrement.php qui reçoit les données de l'arduino et les enregistre dans la table temp de la base de données sti2d. Ce programme récupère aussi la date et l'heure du PC afin de les envoyer avec chaque valeur de température ; écrire une page web lecture.php qui se connecte à cette base et affiche les mesures. ArduinoTemp.ino /* ArduinoTemp.ino Web client Ce programme se connecte à un serveur web et transmet en paramètre la valeur de la température relevée sur un capteur TMP36 connecté à A0 Circuit: * Ethernet shield sur broches 10, 11, 12, 13 * TMP36 sur broche A0 22 octobre 2014 Christophe Le Bris */ #include <SPI.h> #include <Ethernet.h> // Enter a MAC address for your controller below. // Newer Ethernet shields have a MAC address printed on a sticker on the shield byte mac[] = 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; IPAddress server(192,168,11,42); // @IP du serveur Web IPAddress ip(192,168,11,221); // @IP du shield ethernet sur la carte Arduino à modifier : prendre l'@ MAC de votre shield à modifier : le serveur web est votre PC // Initialize the Ethernet client library // with the IP address and port of the server // that you want to connect to (port 80 is default for HTTP): EthernetClient client; à modifier : @IP que vous attribuez à votre shield, voir tableau sur le réseau Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 6/12

void setup() // start the serial library: Serial.begin(9600); pinmode(a0,input); // give the ethernet module time to boot up: delay(1000); // start the Ethernet connection using a fixed IP address and DNS server: Ethernet.begin(mac, ip); // print the Ethernet board/shield's IP address: Serial.print("My IP address: "); Serial.println(Ethernet.localIP()); void loop() httprequest(); delay(20000); // this method makes a HTTP connection to the server: void httprequest() float temp=analogread(a0); if (client.connect(server, 80)) Serial.println("Connecting..."); Serial.print("la temperature est de : "); Serial.println(temp); // send the HTTP PUT request: à modifier : le serveur web est votre PC à modifier : calcul de la température client.print("get http://192.168.11.42/enregistrement.php?temp=+"); /*localhost à changer par l'@ IP du serveur */ client.print(temp); client.println(" HTTP/1.0") ; client.println(); Serial.println("fin de la requete..."); client.stop(); else // if you couldn't make a connection: Serial.println("connection failed"); client.stop(); Utilisez les travaux effectués dans ce TP pour écrire les différents programmes. Testez et faîtes valider le bon fonctionnement par le professeur. Validation prof : Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 7/12

6. Présenter les données en PHP et Javascript Serveur LAMP Navigateur web Bdd L'objectif est de présenter les données récoltées dans la base de données sous une forme synthétique et graphique interprétable par tous navigateurs. On distingue trois zones d'information : - la température instantanée (thermomètre), - l'historique de l'évolution de la température (graphique) - un calcul de la moyenne et des extrêmes des températures récoltées. Historique des T C T C instantanée T C moyenne et extrêmes 6.1 Calculs sur la base de données Pour afficher les valeurs moyenne et extrêmes, trois requêtes vers la base de données doivent être formulées à partir d'un fichier PHP, puis elles seront affichées. index.php <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>lecture de la bdd</title> </head> <body> <?php include ('identifiants.php'); /* connexion à la bdd */ $link = mysqli_connect($host,$user,$pass,$bdd); if (mysqli_connect_errno()) echo "Failed to connect to MySQL: ". mysqli_connect_error(); if (!$link) die('echec de connexion au serveur de base de données : '. mysqli_connect_error(). '('. mysqli_connect_errno(). ') '); echo 'base connectée... <br/>'; //envoi d'une requête pour un encodage en UTF-8 */ Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 8/12

résultat champ à vérifier?> </body> </html> $query= "SET NAMES UTF8"; mysqli_query($link,$query); /* envoi d'une requête pour lire la bdd */ $query = "SELECT * FROM `matable` "; // requête SQL vers matable if ($reponse = mysqli_query($link, $query)) $nb = mysqli_num_rows($reponse); // nombre de lignes du echo 'Nombre de mesures dans la base : '.$nb.'<br/>'; if ($nb!=0) while($ligne = mysqli_fetch_array($reponse)) $date = $ligne['date']; $heure = $ligne['heure']; $temp= $ligne['temp']; mysqli_free_result($reponse); //la derniere valeur lue sera affichée sur le thermo // echo $date.' - '.$heure.' - '.$temp.' C - '.'<br />'; // libération des résultats //Récupération moy max et min $query = "SELECT AVG(`temp`) AS temp_moy FROM `matable`"; if ($reponse = mysqli_query($link, $query)) $ligne = mysqli_fetch_array($reponse); $temp_moy = $ligne['temp_moy']; echo 'la température moyenne est de '.$temp_moy.' C<br />'; mysqli_free_result($reponse); // libération des résultats $query = "SELECT MAX(`temp`) AS max_temp FROM `matable`"; if ($reponse = mysqli_query($link, $query)) $ligne = mysqli_fetch_array($reponse); $temp_max = $ligne['max_temp']; champ à vérifier echo 'la température maxi est de '.$temp_max.' C<br />'; mysqli_free_result($reponse); // libération des résultats Identifier la requête mysql nécessaire pour obtenir la valeur moyenne : modifier par le nom de votre table vérifier les noms de ces champs dans votre table modifier par le nom de votre table modifier par le nom de votre table Indiquer dans quelle variable PHP est stockée cette donnée : Identifier la requête mysql nécessaire pour obtenir la valeur max : Indiquer dans quelle variable PHP est stockée cette donnée : Recopier et modifier ce code en utilisant la base de données connectée avec l'arduino. Enregistrer-le sous index.php dans var/www.tester. La requête mysql nécessaire pour obtenir la valeur min est la suivante: SELECT MIN(`temp`) AS min_temp FROM `matable`. Tester cette requête dans la base de donnée en l'adaptant au nom de votre base de donnée. Vérifier le résultat. Écrire dans votre fichier index.php, le code permettant de récupérer et d'afficher la valeur min. Vous stockerez cette valeur dans la variable PHP $temp_min. Validation prof : Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 9/12

6.2 Communiquer des données de la base de données au Javascript par le PHP JavaScript est un langage de programmation de scripts principalement employé dans les pages web interactives mais aussi pour les serveurs. Du code JavaScript peut être intégré directement au sein des pages web, pour y être exécuté sur le poste client. C'est alors le navigateur Web qui prend en charge l'exécution de ces programmes appelés scripts. Généralement, JavaScript sert à contrôler les données saisies dans des formulaires HTML, ou à interagir avec le document HTML via l'interface Document Object Model, fournie par le navigateur (on parle alors parfois de HTML dynamique ou DHTML). Il est aussi utilisé pour réaliser des services dynamiques, parfois futiles, strictement cosmétiques ou à des fins ergonomiques. Télécharger sur le réseau la bibliothèque RGRAPH contenant entre autre la représentation du thermomètre. Créer un dossier libraries dans var/www. Décompresser dans ce dossier uniquement les trois fichiers cidessous, contenant la représentation graphique et les effets dynamiques du thermomètre (remplissage et affichage des valeurs). Rgraph.common.core.js : noyau mathématiques de la bibliothèque Rgraph.common.effects.js : effets dynamiques utilisés Rgraph.thermometer.js : aspect graphique du thermomètre Note : Le répertoire demos de la bibliothèque RGraph permet de visualiser l'ensemble des jauges graphes, diagrammes, Gantt et voyants disponibles... Rgraph/default pour une vision d'ensemble On donne ci-dessous le programme partiel index.php que vous fusionnerez avec le programme précédent : index.php <!DOCTYPE html> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="30; URL=http://localhost/index.php"> <link rel="stylesheet" href="demo.css" type="text/css" media="screen" /> <meta charset="utf-8" /> <title>lecture de la température</title> <script src="/libraries/rgraph.common.core.js" ></script> <script src="/libraries/rgraph.common.effects.js" ></script> <script src="/libraries/rgraph.line.js" ></script> <script src="/libraries/rgraph.thermometer.js" ></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> </head> Code permettant d'affecter un positionnement sur la page en lien avec le fichier css et de définir la taille de la fenêtre du thermomètre <body> <h1> SUIVI DE TEMPERATURE </h1> <canvas id="cvs" width="100" height="400">[no canvas support]</canvas> <script> max: 100, value: value); ) </script> </body> </html> début du code javascript //thermomètre $(document).ready(func = function () /*finalisation du themomètre passage des paramètres variables*/ var value ='<?php echo $temp ;?>'; if (typeof thermometer == 'undefined') // A global on purpose thermometer = new RGraph.Thermometer(id: 'cvs', min: 0, else thermometer.value = value; thermometer.grow() settimeout(function()rgraph.clear(thermometer.canvas);func();, 5000); Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 10/12

Identifier, dans le code javascript, où est réalisé le lien entre la dernière valeur de température lue dans la base de donnée par le code php. Quelle variable php est transformée en variable js?sous quelle nom estelle stockée désormais dans le script js? A quoi va servir cette variable PHP pour l'obtention du thermomètre?identifiez où cette nouvelle variable js est utilisée. Copier le code ci-dessus dans votre fichier index php. Attention, veillez à insérez la partie «body» à la suite du «body» existant dans le fichier précédent. Code contenu dans le fichier demo.css que vous créerez dans var/www. body #cvs font-family: Arial; margin-right:10%; float: right; width:10%; h1 text-align : center; L'échelle actuelle du thermomètre couvre la plage de 0 à 100, modifiez votre programme pour qu'elle aille désormais de 0 à la température maxi +10 ($temp_maxi +10) que vous avez récupérez dans votre code php. Validation prof : 6.3 Créer un graphe représentant l'historique des données de la bdd Rajouter à votre répertoire librairies le fichier Rgraph.line.js (aspect graphique du thermomètre). Ajouter à la partie php de votre fichier index.php le code ci-dessous : Code permettant de récupérer dans un tableau php les valeurs des heures des relevés de température de la bdd $query= "SELECT heure FROM `matable` LIMIT 0,100"; $j=0; if ($reponse = mysqli_query($link, $query)) while ($ligne = mysqli_fetch_array($reponse)) $heureinst[$j] = $ligne['heure']; $j++; modifier par le nom de votre table Ecrire le code permettant de récupérer dans un tableau php les valeurs des températures dans $tempinst[] $query= Transformation des tableaux php en chaîne de caractères compréhensible par js $ytemp= implode(",",$tempinst); //transforme le tableau en chaîne d'entiers séparés pas des virgules 25,26,,,,,, $xheure="'".implode("','",$heureinst)."'"; // transforme le tableau en chaîne de string de type // exemple: '21:39:21',...,'21:42:22' Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 11/12

Complétez ce code permettant de récupérer dans un tableau php les valeurs des températures, vous utiliserez la variable $tempinst[]. Identifier le nom de la nouvelle chaîne de caractères contenant les valeurs de températures : Insérer dans le body du code html de votre fichier index.php le code ci-dessous : il s'agit d'une superposition de 3 graphes comprenant une ligne bleu indiquant la température maxi, une rouge pour l'historique des température et une verte pour la température mini. <canvas id="cvs2" width="600" height="250">[no canvas support]</canvas><br /> <script> var tempmaxi=new Array (); for (var i=0; i<'<?php echo $nb?>';i++) tempmaxi[i]=<?php echo $temp_max?>; $(document).ready(function ()// ouverture de la fonction créant le graphe var line = new RGraph.Line( id: 'cvs2', data: [<?php echo $ytemp;?>], options: ymax:<?php echo $temp_max;?>+3, labels: [<?php echo $xheure;?>] ) </script> ).draw() var line2 = new RGraph.Line( id: 'cvs2', data: tempmaxi, options: colors:['blue'], linewidth: 3, ylabels: false, ymax:<?php echo $temp_max?>+3, labels: [] ).draw() Création d'un tableau js contenant autant de fois la température maxi qu'il y a eu de prises de température Var line est la construction de la ligne rouge du graphique historique des températures. Draw() l'affiche. Var line2 est la construction de la ligne bleu du graphique température maxi. Draw() l'affiche. Écrire le code permettant d'obtenir la ligne verte de la température mini (vous utiliserez les mêmes options de tracé de la ligne de ce graphe que celles utilisées pour la ligne bleu hormis la couleur). Attention id cvs2 doit être paramétré dans votre fichier demo.css. Complétez le fichiez demo.css #cvs2 width:70%; float: left; h1 text-align : center; h4 text-align : center; #text float: left; Validation prof : width:80%; Ce code peut être rajouté en fin de body du fichier index.php expliquez ce qu'il fait : <span id="text" style="font-size: 12pt; font-weight: normal"> <h4><?php echo 'La température mini est de '.$temp_min.'<br />'; echo 'La température moyenne est de '.$temp_moy.'<br />'; echo 'La température maxi est de '.$temp_max.'<br />';?></h4> </span> Tsti2D SIN TP TSIN_TP7 base de donnees.odt - page 12/12