O. Auzende Ingénierie Web. PHP et MySQL



Documents pareils
CREATION WEB DYNAMIQUE

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

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)

Mysql avec EasyPhp. 1 er mars 2006

Stockage du fichier dans une table mysql:

Bases de données relationnelles

PHP 4 PARTIE : BASE DE DONNEES

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

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

1 Position du problème

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

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

Olivier Mondet

I. MySQL : Serveur et SGBD

Pratique et administration des systèmes

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

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

PDO : PHP Data Object 1/13

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

Attaques applicatives

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

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

Encryptions, compression et partitionnement des données

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

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

A QUOI SERVENT LES BASES DE DONNÉES?

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Groupe Eyrolles, 2003, ISBN : X

TP JAVASCRIPT OMI4 TP5 SRC

1. Base de données SQLite

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

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

Objectifs du TP : Initiation à Access

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

Les BASES de DONNEES dans WampServer

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

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

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

Diffuser un contenu sur Internet : notions de base... 13

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

PROJET 1 : BASE DE DONNÉES REPARTIES

1 Introduction et installation

Application web de gestion de comptes en banques

Dossier I Découverte de Base d Open Office

Guide d utilisation. Version 1.1

SQL Historique

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

DOM - Document Object Model

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

Installation poste de travail. Version /02/2011

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

A QUOI SERVENT LES BASES DE DONNÉES?

Formulaire pour envoyer un mail

Installation de Joomla avec Filezilla

Thème : Création, Hébergement et référencement d un site Web

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Langage SQL : créer et interroger une base

Organiser les informations ( approche technique )

TP Contraintes - Triggers

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

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

Bases de Données et Internet

PPE Installation d un serveur FTP

Rapports d activités et financiers par Internet. Manuel Utilisateur

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

Google Drive, le cloud de Google

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Manuel d utilisateur du site de covoiturage «Etucovoiturage»

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

SUPPORT DE COURS / PHP PARTIE 3

MANUEL DE L UTILISATEUR

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

Gestion de stock pour un magasin

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

Le langage C. Séance n 4

Création et Gestion des tables

Optimisations des SGBDR. Étude de cas : MySQL

Aide à la prise en charge / PEC+ Utilisation dans les logiciels Mélusine Taxi Live

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Gestion de base de données

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

SYSTÈMES D INFORMATIONS

Au préalable, nous nous plaçons dans l espace au sein duquel nous allons créer notre raccourci vers l ENTG.

COMMENT CREER SIMPLEMENT UN TABLEAU DE BORD AVEC SAS BI DASHBOARD 4.3?

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

Sécurité des applications web. Daniel Boteanu

Structure fonctionnelle d un SGBD

Tutorial sur SQL Server 2000

Le Service de Télétransmission par Internet des banques du Réseau OCÉOR GUIDE UTILISATEURS. Version V1.0

Affectation standard Affectation modifiée (exemple)

Le Langage De Description De Données(LDD)

I4 : Bases de Données

MODE D EMPLOI

1. Introduction Création d'une requête...2

Transcription:

O. Auzende Ingénierie Web Création d une base PHP et MySQL Lancez easyphp et créez une base baseqcm, pour l instant vide. Nous allons la remplir avec des questions de C2i (certificat Informatique et Internet). Le fichier baseqcm.dump vous est fourni. Remplissez la base à l aide de ce fichier. CREATE TABLE categories (num tinyint(2) NOT NULL AUTO_INCREMENT, intitule varchar(30), PRIMARY KEY(num), UNIQUE id(num)); INSERT INTO categories VALUES(1, 'technique'); INSERT INTO categories VALUES(2, 'culture'); INSERT INTO categories VALUES(3, 'utilisation'); CREATE TABLE questions (num tinyint(4) NOT NULL AUTO_INCREMENT, categorie tinyint(2), texte varchar(250), PRIMARY KEY(num), UNIQUE id(num)); CREATE TABLE reponses (num tinyint(5) NOT NULL AUTO_INCREMENT, question tinyint(4), texte varchar(100), qualite tinyint(2), PRIMARY KEY(num), UNIQUE id(num)); INSERT INTO questions VALUES(1, 1, 'La memoire centrale :'); INSERT INTO reponses VALUES(1, 1, 'se vide lorsqu\'on arrete l\'ordinateur', 3); INSERT INTO reponses VALUES(2, 1, 'conserve les donnees indefiniment', -1); INSERT INTO reponses VALUES(3, 1, 'transfere les donnees sur le disque dur avant de se vider', -1); INSERT INTO reponses VALUES(4, 1, 'ne se vide jamais', -1); INSERT INTO questions VALUES(2, 1, 'Dans la mémoire centrale, on stocke :'); INSERT INTO reponses VALUES(5, 2, 'les programmes et les donnees', 3); INSERT INTO reponses VALUES(6, 2, 'les programmes seulement', -1); INSERT INTO reponses VALUES(7, 2, 'les donnees seulement', -1); INSERT INTO reponses VALUES(8, 2, 'Windows', -1); INSERT INTO questions VALUES(3, 1, 'Une disquette est :'); INSERT INTO reponses VALUES(9, 3, 'une memoire remanente', 3); INSERT INTO reponses VALUES(10, 3, 'une memoire volatile', -1); INSERT INTO reponses VALUES(11, 3, 'une memoire permanente', -1); INSERT INTO reponses VALUES(12, 3, 'une memoire rapide', -1);... La structure de la base ainsi créée comporte trois tables (modèle relationnel) : En encadré, les clés ; les traits représentent les jointures. Interrogation directe de la base de données Faites exécuter via PHPMyAdmin les requêtes suivantes : - nombre de catégories de questions - nombre de questions - énoncés des questions - nom des catégories et nombre de questions par catégories 1

Fonctions PHP d accès aux bases de données mysql Les principales fonctions sont : o mysql_connect() reçoit en argument le nom d une machine hôte, le nom d un utilisateur et son éventuel mot de passe. Elle établit la connexion. o mysql_select_db() permet de sélectionner une base de données particulière. o mysql_query() transmet une requête SQL au serveur pour qu il l exécute. En cas de succès, elle renvoie l identificateur d un ensemble résultat, en l occurrence une table (virtuelle). o mysql_close() ferme la connexion MySQL. o mysql_fetch_row retourne une ligne de résultat sous la forme d'un tableau. o mysql_fetch_array retourne une ligne de résultat sous la forme d'un tableau associatif. o mysql_result retourne un champ d'un résultat. o mysql_insert_id() ramène le dernier identificateur attribué. Lecture de la base de données par PHP Fichier lecture1.php : il utilise la fonction mysql_fetch_row : <html> <body> <?php $db=mysql_connect("localhost","root",""); mysql_select_db("baseqcm",$db); $result=mysql_query("select * FROM categories",$db); if ($lignes=mysql_fetch_row($result)) { echo "<table border=1>\n"; echo "<tr><td>numéro</td><td>intitulé</td></tr>\n"; do { printf("<tr><td>%s</td><td>%s</td></tr>\n",$lignes[0], $lignes[1]); while ($lignes=mysql_fetch_row($result)); echo "</table>\n"; else { echo "table vide";?> </body> </html> Fichier lecture2.php : il utilise la fonction mysql_fetch_array : <html> <body> <?php $db=mysql_connect("localhost","root",""); mysql_select_db("baseqcm",$db); $result=mysql_query("select * FROM categories",$db); if ($lignes=mysql_fetch_array($result)) { echo "<table border=1>\n"; echo "<tr><td>numéro</td><td>intitulé</td></tr>\n"; do { printf("<tr><td>%s</td><td>%s</td></tr>\n",$lignes["num"], $lignes["intitule"]); while ($lignes=mysql_fetch_array($result)); echo "</table>\n"; else { echo "table vide";?> </body> </html> 2

O. Auzende Ingénierie Web Exercices 1) Ecrire une page nbparcategorie.php affichant l intitulé de chaque catégorie ainsi que le nombre de questions de cette catégorie : 2) Générer la page questions.php comportant uniquement les questions de la base : 3) Modifier la page questions.php pour qu elle affiche les questions de la base et les réponses associées : 3

3) Modifier cette page en y introduisant un formulaire (method="post" et action="reponse.php") et en faisant apparaître des boutons radio devant chaque réponse : Le nom de la variable associée aux boutons radio correspondant aux réponses à la question 1 sera "q1", celui de la variable associée aux boutons radio des réponses à la question 2 sera "q2", etc. Le début du source généré sera donc : La memoire centrale : <br> <input type='radio' name='q1' value='3'>se vide lorsqu'on arrete l'ordinateur<br> <input type='radio' name='q1' value='-1'>conserve les donnees indefiniment<br> <input type='radio' name='q1' value='-1'>transfere les donnees sur le disque dur avant de se vider<br> <input type='radio' name='q1' value='-1'>ne se vide jamais<br> <hr> Dans la mémoire centrale, on stocke : <br> <input type='radio' name='q2' value='3'>les programmes et les donnees<br> <input type='radio' name='q2' value='-1'>les programmes seulement<br> <input type='radio' name='q2' value='-1'>les donnees seulement<br> <input type='radio' name='q2' value='-1'>windows<br> <hr> Une disquette est : <br> <input type='radio' name='q3' value='3'>une memoire remanente<br> <input type='radio' name='q3' value='-1'>une memoire volatile<br> <input type='radio' name='q3' value='-1'>une memoire permanente<br> <input type='radio' name='q3' value='-1'>une memoire rapide<br> <hr>... 4) Modifier cette page en faisant apparaître, pour chaque question, les réponses dans le désordre. Pour cela : o initialiser un générateur de nombres aléatoires par la fonction srand(); o récupérer les textes à mélanger dans un tableau $donnees o mélanger les éléments de $donnees par la fonction shuffle : shuffle($donnees); 5) Ecrire la page reponse.php calculant le score réalisé par l utilisateur lorsqu il valide le formulaire de la page questions.php. 4

O. Auzende Ingénierie Web 6) Ajout/suppression de catégorie Ecrire la page insercategorie.php ci-contre qui affiche les catégories existantes et demande le nom d une nouvelle catégorie. Le formulaire fera appel comme action au fichier insertioncategorie.php avec la méthode POST. Ecrire ensuite la page réponse insertioncategorie.php qui réalise l insertion dans la base et réaffiche les catégories existantes (ci-contre). Ecrire la page supprcategorie.php qui propose dans une liste de sélection les catégories existantes et demande celle à supprimer (ci-contre). Le formulaire fera appel comme action au fichier suppressioncategorie.php avec la méthode POST. Ecrire ensuite la page réponse suppressioncategorie.php qui réalise la suppression dans la base si cette suppression est possible et réaffiche les catégories restantes. A noter : la suppression n est possible que s il n existe aucune question de cette catégorie dans la base (voir ci-dessous à gauche). Sinon, afficher un message (voir ci-dessous à droite) : 7) Ajout/suppression de question Ecrire la page inserquestion.php ci-contre ; le formulaire fera appel comme action au fichier insertionquestion.php avec la méthode POST. Ecrire ensuite la page insertionquestion.php qui réalise l insertion effective de la question et des réponses dans la base. A noter : on insère d abord la question dans la table questions, on récupère son identificateur num par la ligne $num=mysql_insert_id() ; qui ramène le dernier identificateur attribué puis on insère les réponses dans la table reponses 5

Affichage souhaité ci-contre après une insertion réussie de question accompagnée de ses réponses : Ecrire supprquestion.php qui propose dans une liste de sélection les textes des questions existantes et demande celle à supprimer (ci-contre). Le formulaire fera appel comme action à suppressionquestion.php avec la méthode POST. Ecrire suppressionquestion.php qui réalise la suppression effective de la question et des réponses correspondantes dans la base. A noter : on supprime d abord les réponses dans la table reponses, puis on supprime la question dans la table questions. Affichage souhaité ci-contre : 8) Menu principal Ecrire une page index.html proposant le menu cicontre permettant d appeler une des pages précédentes. 6