Alimentation et interrogation de la base de données depuis PHP



Documents pareils
CREATION WEB DYNAMIQUE

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

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

Bases de données relationnelles

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

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

Stockage du fichier dans une table mysql:

Importer un fichier CSV

Mysql avec EasyPhp. 1 er mars 2006

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)

Pratique et administration des systèmes

Olivier Mondet

I. MySQL : Serveur et SGBD

Création et Gestion des tables

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

Cours: Administration d'une Base de Données

SQL Historique

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

Prise en main de Moodle

Généralités sur les systèmes d Exploitation

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

Les BASES de DONNEES dans WampServer

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

PHP 4 PARTIE : BASE DE DONNEES

SUPPORT DE COURS / PHP PARTIE 3

Généralités sur les systèmes d Exploitation

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

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

A QUOI SERVENT LES BASES DE DONNÉES?

1 Position du problème

Gestion de base de données

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

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

Langage SQL : créer et interroger une base

Objectifs du TP : Initiation à Access

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

I4 : Bases de Données

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

Le Langage De Description De Données(LDD)

A QUOI SERVENT LES BASES DE DONNÉ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

Application web de gestion de comptes en banques

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

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

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

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

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

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

Compétences Business Objects

1. Base de données SQLite

Attaques applicatives

Cours Bases de données 2ème année IUT

PDO : PHP Data Object 1/13

1/ Présentation de SQL Server :

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

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

FileMaker 13. Guide de référence SQL

Groupe 11 TABLE DES MATIERES

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

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

TP3 : Creation de tables 1 seance

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Pour les débutants. langage de définition des données

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

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Gestion des bases de données

Création de Sous-Formulaires

Séance 1 Introduction aux bases de données

API SMS CONSEIL HTTP V2.01. Sommaire. Documentation V1.0 au 21/05/2011

Bureautique Initiation Excel-Powerpoint

Module BD et sites WEB

Le Langage SQL version Oracle

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

Construire une base de donnée pour bibliothèque

BTS/CGO P10 SYSTEME INFORMATION Année

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

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

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

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Gestion de stock pour un magasin

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

Introduction au Système de Gestion de Base de Données et aux Base de Données

Programmation Web. Madalina Croitoru IUT Montpellier

Easy to. report. Connexion. Transformation. Stockage. Construction. Exploitation. Diffusion

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

Les bases de données

TP JAVASCRIPT OMI4 TP5 SRC

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

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Modélisation et Gestion des bases de données avec mysql workbench

Devoir Data WareHouse

CATALOGUE DES FORMATIONS 2014

OpenOffice Base Gestionnaire de Base de Données

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

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Bases de données élémentaires Maude Manouvrier

Transcription:

Alimentation et interrogation de la base de données depuis PHP Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I109 e-mail : Jean-Philippe.Pernin@imag.fr

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 1 Déroulement des séances restantes Séance 5 : 6 novembre 2008 Partie 1 : conception de base de données Partie 2 : manipulation de MySQL Création des tables Découverte des requetes Projet : Définition des tables et des relations Séance 6: 13 novembre 2008 Création des tables et Expression de requetes en PHP Projet : Cahier des charges Séance 7: 20 novembre 2008 Developpement du projet Séance 8: 27 novembre 2008 Developpement du projet Séance 9: 4 décembre 2008 (2 heures) 30 mn : petit QCM Présentation des projets (20mn par projet).

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 2 Rappel : creation de la base Trois étapes pour créer les bases : Etape 1 : Définition du modèle relationnel Etape 2 : Traduction en tables Etape 3 : Codage de création des tables en langage SQL

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 3 Etape 1 : définition du modèle film id_film : entier titre : texte date_sortie : date pays : texte (dans une liste) genre : texte (dans une liste) duree : un entier en minutes annee_production : entier n n ecritpar ecrit metenscene tournedans m 1 realisateur id_realisateur : entier nom : texte prenom : texte date_naissance : date acteur id_acteur : entier nom : texte prenom : texte date_naissance : date n estdistribuepar distribue 1 distributeur id_distributeur : entier nom : texte Exercice : Créer votre propre modèle ER 1 estillustrepar illustre 1 Affiche id_affiche : entier Titre : affiche nomfichier : texte

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 4 Etape 2 : système de tables constituant la base de données id_film titre date_sorti e pays genre flim duree annee_ production Ref_ Realisateu r Ref_ distributeur Ref_ affiche id_ Realisateur nom Realisateur prenom date_ naissance film_acteur Acteur Id_film_acteur ref_flim ref_acteur id_ acteur nom prenom date_ naissance distributeur Id_distrib uteur nom id_affiche affiche titre nomfichier

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 5 Etape 3 : création de la base à l'aide d'un fichier de commande SQL (à exécuter dans EsayPHP MyAdmin) CREATE TABLE acteur ( id_acteur int(11) NOT NULL auto_increment, nom varchar(64) NOT NULL, prenom varchar(64) NOT NULL, date_naissance date NOT NULL, PRIMARY KEY (id_acteur) ) ; CREATE TABLE affiche ( id_affiche int(11) NOT NULL auto_increment, titre varchar(200) NOT NULL, nom_fichier varchar(256) NOT NULL, PRIMARY KEY (id_affiche) ) ; CREATE TABLE distributeur ( id_distributeur int(11) NOT NULL auto_increment, nom varchar(200) NOT NULL, PRIMARY KEY (id_distributeur) ) ; CREATE TABLE film ( id_film int(11) NOT NULL auto_increment, titre varchar(200) NOT NULL, date_sortie date NOT NULL, pays varchar(64) NOT NULL, genre varchar(64) NOT NULL, duree time NOT NULL, annee_production int(11) NOT NULL, ref_realisateur int(11) NOT NULL, ref_distributeur int(11) NOT NULL, ref_affiche int(11) NOT NULL, PRIMARY KEY (id_film), KEY ref_realisateur (ref_realisateur), KEY ref_distributeur (ref_distributeur), KEY ref_affiche (ref_affiche) ) ; CREATE TABLE film_acteur ( id_film_acteur int(11) NOT NULL auto_increment, ref_film int(11) default NULL, DROP TABLE IF EXISTS acteur ; CREATE TABLE acteur ( ) ; id_acteur int(11) NOT NULL auto_increment, nom varchar(64) NOT NULL, prenom varchar(64) NOT NULL, date_naissance date NOT NULL, PRIMARY KEY (id_acteur)

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 6 Etape 3 : Créer la base de données en SQL avec phpmyadmin Créer une nouvelle base de données vide Définir la structure et les enregistrements des tables avec la commande Importer :

Alimenter la base de données Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I109 e-mail : Jean-Philippe.Pernin@imag.fr

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 8 Trois possibilités pour alimenter la base Dans Easy PHP : Par exécution d'un fichier de requêtes SQL Par importation d'un fichier CSV Depuis une page web En incluant des requetes SQL dans du code PHP

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 9 Méthode 1 : Exemple de fichier SQL permettant d'alimenter la base INSERT INTO acteur (id_acteur, nom, prenom, date_naissance) VALUES (1, 'Frot', 'Catherine', '1957-05-01'), (2, 'Dussollier', 'André', '1946-02-17'), (3, 'Cassel', 'Vincent', '1966-11-23'), (4, 'De France', 'Cécile', '1975-07-17'), (5, 'Merad', 'Kad', '1964-03-27'), (6, 'Boon', 'Dany', '1966-06-26'), (7, 'Pitt', 'Brad', '1963-12-18'), (8, 'Blanchett', 'Cate', '1969-05-14'), (9, 'Johansson', 'Scarlett', '1984-11-22'), (10, 'Cruz', 'Penelope', '1974-04-28'), (11, 'Mortimer', 'Emily', '1971-12-01'), (12, 'Allen', 'Woody', '1935-12-01'); INSERT INTO distributeur (id_distributeur, nom) VALUES (1, 'Mars Distribution'), (2, 'Pathé Distribution'), (3, 'StudioCanal'), (4, 'TFM Distribution'), (5, 'UGC'), (6, 'Warner Bros. France'); INSERT INTO film (id_film, titre, date_sortie, pays, genre, duree, annee_production, ref_realisateur, ref_distributeur, ref_affiche) VALUES (5, 'Vicky Cristina Barcelona', '2008-10-08', 'Etats- Unis', 'Comédie', '01:37:00', 2008, 5, 6, 5), (4, 'Babel', '2006-11-15', 'Mexique', 'Drame', '02:15:00', 2005, 4, 1, 4), (3, 'Bienvenue chez les Ch''tis', '2008-02-27', 'France', 'Comédie', '01:46:00', 2008, 3, 2, 3), (2, 'Mesrine : L''Instinct de mort', '2008-10-22', INSERT INTO acteur (id_acteur, nom, prenom, date_naissance) VALUES (1, 'Frot', 'Catherine', '1957-05-01'), (2, 'Dussollier', 'André', '1946-02-17'), (3, 'Cassel', 'Vincent', '1966-11-23'), (4, 'De France', 'Cécile', '1975-07-17'), (5, 'Merad', 'Kad', '1964-03-27'), (6, 'Boon', 'Dany', '1966-06-26'), (7, 'Pitt', 'Brad', '1963-12-18'), (8, 'Blanchett', 'Cate', '1969-05-14'), (9, 'Johansson', 'Scarlett', '1984-11-22'), (10, 'Cruz', 'Penelope', '1974-04-28'), (11, 'Mortimer', 'Emily', '1971-12-01'), (12, 'Allen', 'Woody', '1935-12-01');

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 10 Méthode 2 : par fichier CSV Qu'est ce qu'un fichier CSV? http://fr.wikipedia.org/wiki/comma-separated_values Comma-separated values (CSV) est un format informatique ouvert représentant des données tabulaires sous forme de «valeurs séparées par des virgules». Un fichier CSV est un fichier texte (par opposition aux formats dit «binaires»). Chaque ligne correspond à une rangée du tableau et les cellules d'une même rangée sont séparées par une virgule. Une ligne est une suite ordonnée de caractères terminée par un caractère de fin de ligne (line break CRLF), la dernière ligne pouvant être exempt de ce dernier. Exemple : id_film;titre;date_sortie;pays;genre;duree;annee_production;ref_realisateur;ref_distributeur;ref_affiche 1; "Le Crime est notre affaire"; 2008-10-15; France; Comédie; 01:49:00; 2008; ; ; 2; "Mesrine : L'Instinct de mort"; 2008-10-22; France; Policier; 01:53:00; 2008; ; ; REMARQUE 1 : le format de codage des caractères doit être compatible avec SQL (UTF8) REMARQUE 2 : les chaines de caractères doivent être clariement délimitées (par exemple par guillemets)) REMARQUE 3 : les caractères "dangereux" (,;) doivent être échappés (précédés de \)

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 11 Le principe Phase 1 : Edition du texte avec un logiciel simple plusieurs possibilités : - notepad, notepad++, - Édition pas très aisée OpenOffice calc Edition plus aisée (attention au format de sortie pour Excel) Excel Idem Calc mais possibles problèmes de formats (UTF8) Phase 2 Sauvegarde du fichier sous format CSV (UTF8) Phase 3 Importation de toutes les données dans phpmyadmin d'une table complète

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 12 Exemple d'importation Fichier film.csv "id_acteur";"nom";"prenom";"date_naissance" 1;"Frot";"Catherine";1957-05-01 2;"Dussollier";"André";1946-02-17 3;"Cassel";"Vincent";1966-11-23 4;"De France";"Cécile";1975-07-17 5;"Merad";"Kad";1964-03-27 6;"Boon";"Dany";1966-06-26 7;"Pitt";"Brad";1963-12-18 8;"Blanchett";"Cate";1969-05-14 9;"Johansson";"Scarlett";1984-11-22 10;"Cruz";"Penelope";1974-04-28 11;"Mortimer";"Emily";1971-12-01 12;"Allen";"Woody";1935-12-01 Exercice : Importez vos propres données dans les tables que vous avez créées

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 13 Méthode 3 : exécution d'un code SQL dans une page PHP // SE CONNECTER A UN SERVEUR PHP mysql_connect("localhost", "root", ""); // Connexion à MySQL // CHOISIR UNE BASE SUR LE SERVEUR mysql_select_db("cinema"); // // EXPRIMER UNE REQUETE EN SQL $sql = 'SELECT DISTINCT acteur.prenom, acteur.nom FROM film, acteur, film_acteur, realisateur WHERE ((film_acteur.ref_film=film.id_film) AND (film_acteur.ref_acteur=acteur.id_acteur))'. ' AND (film.ref_realisateur=realisateur.id_realisateur)'. ' AND (film.genre="comedie") '. ' AND (realisateur.prenom="woody") '. ' AND (realisateur.nom="allen") '. ' ORDER BY acteur.nom'. ' '; // ENVOYER LA REQUETE ET RECUPERER LA REPONSE $reponse = mysql_query($sql); // LES REPONSES SONT STOCKEES DANS UN TABLEAU OU CHAQUE LIGNE EST UN ENREGISTREMENT while ($enregistrement = mysql_fetch_array($reponse, MYSQL_ASSOC) ) { print("<br>".$enregistrement['prenom']." ".$enregistrement['nom']); }

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 14 Requete SQL avec formulaire (champ variable) <html> <body> <!-- DEBUT DU FORMULAIRE --> <form action="traiterrequeteacteur.php" method="post"> Quel acteur a tourné pour <input name="nomacteur" type="text" maxlength = "64" /> <br> <input name="valider" value="chercher" type="submit" > </form> </body> </html> <?php $nomacteur= $_REQUEST["nomActeur"]; mysql_connect("localhost", "root", ""); // Connexion à MySQL mysql_select_db("cinema"); // $sql = 'SELECT DISTINCT acteur.prenom, acteur.nom FROM film, acteur, film_acteur, realisateur WHERE ((film_acteur.ref_film=film.id_film) AND (film_acteur.ref_acteur=acteur.id_acteur))'. ' AND (film.ref_realisateur=realisateur.id_realisateur)'. ' AND (film.genre="comedie") '. ' AND (realisateur.nom="'.$nomacteur.'") '. ' ORDER BY acteur.nom'. ' '; $reponse = mysql_query($sql); while ($enregistrement = mysql_fetch_array($reponse, MYSQL_ASSOC) ) { print("<br>".$enregistrement['prenom']." ".$enregistrement['nom']); }?>

Copyright novembre 08 Jean-Philippe Pernin DIP Université Stendhal Grenoble 3 15 Le processus en résumé 1. Concevoir la base de données 2. Créer la base de données vide (par requete SQL) 3. Alimenter la base (par CSV ou par requete SQL) 4. Pour chaque requête à faire depuis une page PHP Dans PHP My Admin 1. Mettre au point la requête (onglet SQL ) 2. Créer automatiquement le code PHP (bouton Créer source PHP ] Avec Notepad++ 1. Créer les formulaires de saisie 2. Créer un fichier PHP pour chacun des formulaires 3. Adapter le code PHP créé automatiquement en insérant les variables du formulaire 5. Améliorer la mise en page HTML avec des CSS