Bases de données LPRO ISVD Olivier Flauzac Université de Reims Champagne-Ardenne [email protected] http://cosy.univ-reims.fr/flauzac Olivier Flauzac (URCA) LPRO ISVD Bases de données 1 / 22 Plan 1 Généralités 2 Le SQL 3 Liaison avec PHP 4 Liaison avec PHP Olivier Flauzac (URCA) LPRO ISVD Bases de données 2 / 22 Plan 1 Généralités 2 Le SQL 3 Liaison avec PHP 4 Liaison avec PHP Olivier Flauzac (URCA) LPRO ISVD Bases de données 3 / 22 Bases de données Définition moyen de stocker de l’information structuration des informations Objectif partager l’information fournir des réponses à des requêtes Olivier Flauzac (URCA) LPRO ISVD Bases de données 4 / 22 Bases de données Exemples MySQL Oracle Post Objectif partager l’information fournir des réponses à des requêtes Olivier Flauzac (URCA) LPRO ISVD Bases de données 5 / 22 Structuration des informations Bases de données ensemble de tables réunion d’informations Table ensemble d’information structurées définition de champs et des types associés ensemble d’enregistrements Enregistrement ligne dans une table exemple : (Dupont , Jean , 35 rue d’ici, 00000 ailleurs) Olivier Flauzac (URCA) LPRO ISVD Bases de données 6 / 22 Types de données Type MySQL INT FLOAT VARCHAR(M) TEXT DATE TIME Olivier Flauzac (URCA) Type de donnée nombre entier nombre à virgule chaîne de caractères chaîne de caractères date heure LPRO ISVD Remarques «modulé» en fonction de la taille «modulé» en fonction de la taille taille de la chaîne inférieure à M max. 65535 caractères format anglophone AAA-MM-JJ format HH:MM:SS Bases de données 7 / 22 Exploitation Langage SQL langage de requête permet de récupérer de l’information structurée requêtes depuis le site web vers la base de données exécution de requêtes depuis des pages PHP Olivier Flauzac (URCA) LPRO ISVD Bases de données 8 / 22 Plan 1 Généralités 2 Le SQL 3 Liaison avec PHP 4 Liaison avec PHP Olivier Flauzac (URCA) LPRO ISVD Bases de données 9 / 22 Le langage SQL Création d’une base create database nom_base ; Création d’une table create t a b l e nom_table ( nom_champ1 type_champ1 , nom_champ2 type_champ2 . . . ) ; Exemple create database CARNET; create t a b l e CONTACT (NOM TEXT , PRENOM TEXT , ADRESSE TEXT , TEL TEXT ) ; Olivier Flauzac (URCA) LPRO ISVD Bases de données 10 / 22 Le langage SQL Insertion d’un élément i n s e r t i n t o nom_table values ( val_champ1 , val_champ2 . . . ) ; Suppression d’un élément d e l e t e from nom_table where nom_champ = v a l e u r ; Olivier Flauzac (URCA) LPRO ISVD Bases de données 11 / 22 Le langage SQL IRecherche d’informations select select select select ∗ from champ1 ∗ from champ1 nom_table ; , champ2 from nom_table ; nom_table where nom_champ = v a l e u r ; , champ2 from nom_table where nom_champ = v a l e u r ; Olivier Flauzac (URCA) LPRO ISVD Bases de données 12 / 22 phpMyAdmin Utilisation affiche l’état du serveur MySQL - permettant de récupérer les statistiques du serveur MySQL ; privilèges - permet de créer des comptes utilisateurs et d’attribuer des droits d’accès aux différents utilisateurs ; Bases de données - permet la gestion des bases, des tables et des enregistrements ; Exporter - permet d’exporter une base, ou en ensemble de tables et d’enregistrements, sous forme texte. Olivier Flauzac (URCA) LPRO ISVD Bases de données 13 / 22 Plan 1 Généralités 2 Le SQL 3 Liaison avec PHP 4 Liaison avec PHP Olivier Flauzac (URCA) LPRO ISVD Bases de données 14 / 22 Fonctionnement Utilisation 1 connexion à la base ; 2 exécution de la requête ; 3 exploitation des résultats (si nécessaire) ; 4 libération de la mémoire contenant les résultats ; 5 déconnexion de la base. Olivier Flauzac (URCA) LPRO ISVD Bases de données 15 / 22 Opérations en PHP Connexion à la base i n t mysql_connect ( s t r i n g s e r v e r , s t r i n g username , s t r i n g password ) Sélection de la base utilisée i n t mysql_select_db ( s t r i n g database_name , r e s o u r c e l i n k _ i d e n t i f i e r ) Exemple $con = mysql_connect ( " l o c a l h o s t " , " o l i v i e r " , " t o t o " ) o r die ( " e r r e u r de connexion " ) ; mysql_select_db ( "CARNET" , $con ) o r die ( " e r r e u r de s é l e c t i o n de base " ) ; Olivier Flauzac (URCA) LPRO ISVD Bases de données 16 / 22 Opérations en PHP Requêtes à la base r e s o u r c e mysql_query ( s t r i n g query , l i n k _ i d e n t i f i e r ) ; Accès aux informations récupérées array mysql_fetch_row ( r e s o u r c e r e s u l t _ i d e n t i f i e r ) ; Libération des ressources i n t mysql_free_result ( resource r e s u l t _ i d e n t i f i e r ) ; boolean mysql_close ( r e s o u r c e l i n k _ i d e n t i f i e r ) ; Olivier Flauzac (URCA) LPRO ISVD Bases de données 17 / 22 Plan 1 Généralités 2 Le SQL 3 Liaison avec PHP 4 Liaison avec PHP Olivier Flauzac (URCA) LPRO ISVD Bases de données 18 / 22 Exemple <!−− f i c h i e r c o n f i g . i n c −−> <? $serv = " l o c a l h o s t " ; / / adresse du s e r v e u r $log = " o l i v i e r " ; / / login $pass= " t o t o " ; / / mot de passe $base= "CARNET" ; / / nom de l a base $ t a b l e = "CONTACT" ; / / nom de l a t a b l e ?> Olivier Flauzac (URCA) LPRO ISVD Bases de données 19 / 22 Exemple <!−− f i c h i e r s e l e c t . php −−> <? include ( " c o n f i g . i n c " ) ; ?> <html > <head> < t i t l e > A f f i c h a g e de t o u s l e s éléments </ t i t l e > </ head> <body> <h1> Ensemble des adresses </ h1> < t a b l e border=" 1 " > <? $con = mysql_connect ( $serv , $log , $pass ) o r die ( " e r r e u r de connexion " ) ; mysql_select_db ( $base , $con ) o r die ( " e r r e u r de s é l e c t i o n " ) ; $req = " s e l e c t ∗ from $ t a b l e ; " ; $res = mysql_query ( $req , $con ) ; while ( $row = mysql_fetch_row ( $res ) ) { print ( "<tr >" ) ; f o r ( $ i =0; $ i <count ( $row ) ; $ i + + ) { p r i n t ( " <td > $row [ $ i ] </ td > " ) ; } p r i n t ( " </ t r > " ) ; } m y s q l _ f r e e _ r e s u l t ( $res ) ; mysql_close ( $con ) ; ?> </ t a b l e > </ body> </ html > Olivier Flauzac (URCA) LPRO ISVD Bases de données 20 / 22 Exemple <!−− f i c h i e r a j o u t . h t m l −−> <html > <head> < t i t l e > f o r m u l a i r e d ’ a j o u t </ t i t l e > </ head> <body> <h1> A j o u t d ’ une adresse </ h1> <form name= " a j o u t " method= "POST" a c t i o n = " a j o u t . php " > < t a b l e border=" 0 " > <tr > <td > nom </ td > <td > < i n p u t t y p e = " t e x t " name= "nom" > </ td > </ t r > <tr > <td > prenom </ td > <td > < i n p u t t y p e = " t e x t " name= " prenom " > </ td > </ t r > <tr > <td > adresse </ td > <td > < i n p u t t y p e = " t e x t " name= " adresse " > </ td > </ t r > <tr > <td > Téléphone </ td > <td > < i n p u t t y p e = " t e x t " name= " t e l e ph o n e " > </ td > </ t r > <tr > <td > </ td > <td >< i n p u t t y p e = " submit " v a l u e = "Go ! ! ! " > </ td > </ t r > </ t a b l e > </ form > </ body> </ html > Olivier Flauzac (URCA) LPRO ISVD Bases de données 21 / 22 Exemple <!−− f i c h i e r a j o u t . php −−> <? include ( " c o n f i g . i n c " ) ; ?> <html > <head> < t i t l e > A j o u t d ’ une adresse </ t i t l e > </ head> <body> <h1> A j o u t </ h1> <? $con = mysql_connect ( $serv , $log , $pass ) o r d i e ( " e r r e u r de connexion " ) ; mysql_select_db ( $base , $con ) o r d i e ( " e r r e u r de s é l e c t i o n " ) ; $req = " i n s e r t i n t o $ t a b l e v a l u e s ( ’ $nom ’ , ’ $prenom ’ , ’ $adresse ’ , ’ $telephone ’ ) ; " ; / / a t t e n t i o n aux c a r a c t è r e s ’ pour l e s v a l e u r s des champs dans l a r e q u ê t e ! ! ! $res = mysql_query ( $req , $con ) o r die ( " e r r e u r d ’ i n s e r t i o n " ) ; mysql_close ( $con ) ; ?> <p> personne a j o u t é e : <ul > < l i > <? p r i n t $nom ?> </ l i > < l i > <? p r i n t $prenom ?> </ l i > < l i > <? p r i n t $adresse ?> </ l i > < l i > <? p r i n t $telephone ?> </ l i > </ u l > </ p> </ body> </ html > Olivier Flauzac (URCA) LPRO ISVD Bases de données 22 / 22