Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter.

Slides:



Advertisements
Présentations similaires
Scripts PHP Interaction avec MySQL Insert, Select, ….
Advertisements

Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 11 Patrick Reuter.
Créer une base de données MySQL
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Conception de Site Webs Interactifs Cours 10 Patrick Reuter
Conception de Site Webs Interactifs Cours 9 Patrick Reuter
Conception de Site Webs Interactifs Cours 8 Patrick Reuter
MySQL et PHP.
Les requêtes Manière de dialoguer avec une base de donnée pour :
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LMD: Langage de Manipulation de Données
Développement d’applications web
AYARI Mejdi Formation 2121 * ISD * 1 tructured uery Anguage 2006.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
L’utilisation des bases de données
Systèmes d Information : 10b Michel de Rougemont Université Paris II Les Bases de Données : Access.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Algèbre relationnelle et SQL
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
MySQL Création des sites dynamiques
Modex Web Dominique Rossin
1 CSI 2532 Lab3 6 Février 2012 Programmation avancée SQL.
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Les transactions.
CPI/BTS 2 Programmation Web PHP et les Bases de données Prog Web CPI/BTS2 – M. Dravet – 11/03/2004 Dernière modification: 11/03/2004.
Mini Projet Web: Liste de Contact
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
PHP & My SQL.
SQL Partie 2. SQL est un Langage de Manipulation de Données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Présenté par COMTE Jeremy et DE LAZZARI Thomas Sommaire b Présentation générale b Include b Notion de variables b MySQL.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
 Requêtes MySQL en PHP Introduction
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Institut Supérieur d’Informatique
Module 7 : Utilisation de requêtes élaborées
 Formulaires HTML : traiter les entrées utilisateur
Usine d’incinération d’ordures ménagères
SQL : Langage de Manipulation des données
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
 Les bases de données MySQL
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Conception de Site Webs Interactifs Cours 9 Patrick Reuter
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
MANIPULATION DES DONNEES : mise à jour des n-uplets.
Séance /10/2004 SGBD - Approches & Principes.
Cours n°2 Implémentation et exploitation
Le Langage de Manipulation de Données LMD Module 6.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Transcription de la présentation:

Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter

Formulaires à l'exemple du livre d'or

entrer.php <form action="sauver.php" method="get"> <p>Insérer votre nom :</p> <input type="text" name="nom"> <p>Insérer votre message :</p> <textarea name="texte" rows="5" cols="20"></textarea> <br /> <input type="submit" name="soumettre"value="-- Envoyer --"> </form> <p>Vous avez renseigné: <p> <p>Nom : <?php echo $_GET['nom']; ?> </p> <p>Texte : echo $_GET['texte']; <a href="livreor.php">Voir le livre d'or</a>

sauver.php entrer.php <p>Vous avez renseigné: <p> <p>Nom : <?php echo $_GET['nom']; ?> </p> <p>Texte : echo $_GET['texte']; <a href="livreor.php">Voir le livre d'or</a> entrer.php <form action="sauver.php" method="get"> <p>Insérer votre nom :</p> <input type="text" name="nom"> <p>Insérer votre message :</p> <textarea name="texte" rows="5" cols="20"></textarea> <br /> <input type="submit" name="soumettre"value="-- Envoyer --"> </form> <p>Vous avez renseigné: <p> <p>Nom : <?php echo $_GET['nom']; ?> </p> <p>Texte : echo $_GET['texte']; <a href="livreor.php">Voir le livre d'or</a>

sauver.php entrer.php <p>Vous avez renseigné: <p> <p>Nom : <?php echo $_GET['nom']; ?> </p> <p>Texte : echo $_GET['texte']; <a href="livreor.php">Voir le livre d'or</a> entrer.php <form action="sauver.php" method="get"> <p>Insérer votre nom :</p> <input type="text" name="nom"> <p>Insérer votre message :</p> <textarea name="texte" rows="5" cols="20"></textarea> <br /> <input type="submit" name="soumettre"value="-- Envoyer --"> </form> <p>Vous avez renseigné: <p> <p>Nom : <?php echo $_GET['nom']; ?> </p> <p>Texte : echo $_GET['texte']; <a href="livreor.php">Voir le livre d'or</a>

sauver.php entrer.php <p>Vous avez renseigné: <p> <p>Nom : <?php echo $_GET['nom']; ?> </p> <p>Texte : echo $_GET['texte']; <a href="livreor.php">Voir le livre d'or</a> entrer.php <form action="sauver.php" method="get"> <p>Insérer votre nom :</p> <input type="text" name="nom"> <p>Insérer votre message :</p> <textarea name="texte" rows="5" cols="20"></textarea> <br /> <input type="submit" name="soumettre"value="-- Envoyer --"> </form> <p>Vous avez renseigné: <p> <p>Nom : <?php echo $_GET['nom']; ?> </p> <p>Texte : echo $_GET['texte']; <a href="livreor.php">Voir le livre d'or</a>

Terminologie Base de données (database) Table (table) Enregistrement (record) Champ (field)

Table PERSONNE PERSONNE PersID nom prénom date_naiss ville_naiss 1 Dupont bob 01-01-1950 2 Santos Leo 29-04-1999 3 Roi Sandra 26-12-2000 note : ici ville_naiss est une clé étrangère (Table VILLE)

Table VILLE VILLE VilleID nom population superficie region 1 Paris 2153600 .. 12 2 Lyon 470400 22 3 Grenoble 156600 note : ici region est une clé étrangère (table REGION)

Types de relations Relation de type 1:1 ici : Relation de type 1:n Relation de type n:m

Table personnes id nom 1 Pascal 2 Marie

Table animaux id nom … id_personne 1 Zeus 2 Sisko 3 Peggy 4 Oscar 5 Felix

Requêtes MySQL INSERT : insérer un enregistrement SELECT : récupérer un/des enregistrement(s) UPDATE : mettre à jour des enregistrements DELETE : effacer des enregistrements

Instructions MySQL INSERT INTO nom_table (nom_du_champs1, nom_du_champs2, …) VALUES (valeur_champs1, valeur_champs2, ..)

Instructions MySQL INSERT INTO livreor ( id , texte , nom , date ) VALUES ('1', 'Leo', 'Bonjour', '2007-12-03'); si le champs id est mis en auto-increment, il suffit de mettre INSERT INTO livreor ( texte , nom , date ) VALUES ('Leo', 'Bonjour', '2007-12-03');

Instructions MySQL Sélectionner les champs de tous les enregistrements d’une table SELECT * FROM nom_table [WHERE condition [AND condition] [OR condition]] [ORDER BY champs [DESC][ASC]]; Exemples: SELECT * FROM livreor SELECT * FROM livreor WHERE nom='Leo' SELECT * FROM livreor WHERE date>'2000-12-01' …

Instructions MySQL Modifier une donnée dans une table UPDATE nom_table SET nom_du_champs = nouvelle_valeur WHERE nom_du_champs = valeur Exemple UPDATE sondage SET nombrechoix1 = 0 WHERE id = 1

Instructions MySQL Effacer un enregistrement DELETE FROM nom_table [WHERE nom_du_champs1 = valeur1 [AND nom_du_champs2 = valeur2]]

PHP et MySQL

PHP et MySQL

Fichier connect_db.php $dbhost="localhost"; $dbuser="root"; $dbpassword=""; $dbname="base_cswd"; $dblink=mysql_connect($dbhost,$dbuser,$dbpassword); $db_cswd=mysql_select_db($dbname,$dblink); function qdb($sql) { $resultat = mysql_query($sql); if (mysql_errno()) echo "MySQL error ".mysql_errno()." : ".mysql_error()."\n<br>"; echo "Requête MySQL : ".$sql."\n<br>"; die; } return $resultat; ?>

Tous les fichiers PHP <?php require_once("connect_db.php"); ?>

Insérer un enregistrement INSERT INTO livreor ( id , texte , nom , date ) VALUES ('', 'Très bon site', 'Cédric', NOW());

Insérer un enregistrement $sql = "INSERT INTO livreor ( id , texte , nom , date ) VALUES ('', 'Très bon site', 'Cédric', NOW()); "; $resultat = qdb($sql); revient à … : $resultat = mysql_query("INSERT INTO …");

echo "j'utilise php" ; // ou bien

Concatenation 1 <?    echo   "Salut"." Martin";  ?> 

Variables <?php $a = 0; $nom = 'Horst'; echo $a; ?> <?php $nom = 'Horst'; ?> <?php echo $a; ?>

Concatenation 2 <? $nom = "Martin"; ?> <?  $nom = "Martin";  ?> Salut <? echo $nom;  ?>

Insérer un enregistrement – première (mauvaise) version $sql = "INSERT INTO livreor ( id , texte , nom , date ) VALUES ('', '". $_GET['nom']."', '".$_GET['texte']."', NOW()); "; $resultat = qdb($sql); $resultat = mysql_query("INSERT INTO …");

Attention à l'injection SQL $sql = "l'arbre"; $sql = mysql_escape_string($sql);

Attention à l'injection SQL $sql = "INSERT INTO livreor ( id , texte , nom , date ) VALUES ('', 'L'arbre pousse.', 'Cédric'; DELETE * FROM livreor; ' Roussel', NOW()); "; $resultat = qdb($sql); revient à … : $resultat = mysql_query("INSERT INTO …");

Attention à l'injection SQL $sql = "INSERT INTO livreor ( id , texte , nom , date ) VALUES ('', 'L\'arbre pousse.', 'Cédric', NOW()); "; $resultat = qdb($sql); revient à … : $resultat = mysql_query("INSERT INTO …");

Insérer un enregistrement – deuxième (bonne) version $sql = "INSERT INTO livreor ( id , texte , nom , date ) VALUES ('', '". mysql_escape_string($_GET['nom'])."', '". mysql_escape_string($_GET['texte'])."', NOW()); "; $resultat = qdb($sql); $resultat = mysql_query("INSERT INTO …");

Parcourir les enregistrenents <?php $sql = "SELECT * FROM livreor"; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements $i=1; while ($i <= $nombre_resultats) { $enregistrements = mysql_fetch_array($resultat) echo $enregistrements['nom']; echo $enregistrements['texte']; $i = $i + 1; } ?>

Parcourir les enregistrenents <?php $sql = "SELECT * FROM livreor;"; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements while ($enregistrements = mysql_fetch_array($resultat)) { echo $enregistrements['nom']; echo $enregistrements['texte']; } ?>

mysql_escape_string Fonction "inverse" : stripslashes

Parcourir les enregistrenents <?php $sql = "SELECT * FROM livreor;"; $resultat = qdb($sql); // connaitre le nombre d'enregistrements $nombre_resultats = mysql_num_rows($resultat); // parcourir le tableau des enregistrements while ($enregistrements = mysql_fetch_array($resultat)) { echo stripslashes($enregistrements['nom']); echo stripslashes($enregistrements['texte']); } ?>