Bases de données - LPRO ISVD - Université de Reims Champagne

publicité
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
Téléchargement