[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
31 vues15 pages

Le Basesdedonnee Phpmysql

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 15

CHAPITRE : PHP/MYSQL .

Réalisé par Mme Medjera

Chapitre : Les Bases de données en PHP / Mysql

Introduction

Pour rendre votre site dynamique ; il est conseillé de conserver les données manipulé et
affiché sur votre site dans une base de données ,
Parmi les nombreux atouts du langage PHP, un des plus connus est son interfaçage avec
la majorité des bases de données du marché.
Parmi les plus connues, on peut citer : MySQL, PostgreSQL, Oracle, Ingres, Interbase,
Informix, Microsoft SQL Server, mSQL, Sybase, FrontBase, dBase, etc …

Dans ce qui suit nous allons voir comment créer ; Gérer et interroger une base de
données Mysql grâce aux script écrits en PHP

1.Définition d’une bases de données :

Une base de données est un ensemble d’informations stockées sur un support et doté
d’une certaine organisation. Votre carnet d’adresses en est un exemple élémentaire,
l’annuaire du téléphone également, mais à une autre échelle.
Une base de données contient une ou plusieurs tables, chaque table ayant un ou
plusieurs enregistrements
L’organisation des données doit permettre de répondre à des contraintes précises,
notamment les suivantes :
• Les données doivent occuper le moins d’espace possible.
• Les redondances d’information doivent être évitées. PHP
• Les mises à jour ou la suppression de données doivent laisser la base intègre et ne pas
créer d’incohérences.
• La recherche d’informations doit être rapide et sûre.
Vous allez donc aborder successivement les phases suivantes :
1. Élaboration du modèle d’organisation des données à l’aide de la méthode
entité/association. Cela entraîne la création d’un modèle conceptuel de données (MCD),
qui est une représentation abstraite des données à stocker et des liens entre elles.
2. Passage du modèle ainsi créé au modèle relationnel, qui est actuellement le plus
courant. Cela entraîne la création d’un modèle logique de données (MLD), qui est la
représentation d’un modèle implantable dans un système particulier.
3. Implémentation dans un SGBDR (Système de gestion de base de données
relationnelle) particulier, comme MySQL ou SQLite ( les plus utilisés )

2. Mysql :

MySQL est un système de gestion de bases de données relationnelles. Le SQL


dans “MySQL” signifie “Structured Query Language” : le langage standard pour

1 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

les traitements de bases de données. MySQL est Open Source. Open Source
(Standard Ouvert) signifie qu’il est possible à chacun d’utiliser et de modifier le
logiciel. Tout le monde peut le télécharger sur Internet et l’utiliser sans payer aucun
droit.
•Toute personne en ayant la volonté peut étudier et modifier le code source pour
l’adapter à ses besoins propres. Toutefois, si vous devez intégrer MySQL dans une
application commerciale, vous devez vous procurer une licence auprès de MySQL
AB. Ce qui rend MySQL très intéressant pour les Webmasters est le nombre d’API
(application program interface) dont il dispose. Vous pouvez en effet l’intégrer dans
des applications écrites en : C, C++, Eiffel, Java, Perl, PHP, Python, Ruby et Tcl.
•Le développement de MySQL commence en 1994 par David Axmark et Michael
Widenius. EN 1995, la société MySQL AB est fondée par ces deux développeurs, et
Allan Larsson. C’est la même année que sort la première version officielle de
MySQL. En 2008, MySQL AB est rachetée par la société Sun Microsystems, qui est
elle-même rachetée par Oracle Corporation en 2010.

3. phpMyAdmin

L’interface phpMyAdmin Même si le couple PHP-MySQL est le plus répandu


actuellement sur le Web, MySQL est accessible à d’autres langages, notamment Java. La
totalité des hébergements PHPMySQL offrent une interface nommée phpMyAdmin, à
partir de laquelle il est possible, pour l’administrateur seulement, d’effectuer toutes les
opérations de création de base et de tables, d’insertion ainsi que de sélection de données.
L’interface phpMyAdmin installée sur vos serveurs local et distant est en réalité un
formulaire écrit en PHP permettant d’agir sur la base.
phpMyAdmin est un outil logiciel gratuit écrit en PHP, destiné à gérer l'administration
de MySQL sur le Web. phpMyAdmin prend en charge un large éventail d'opérations sur
MySQL et MariaDB. Opérations fréquemment utilisées (gestion de bases de données, de
tables, colonnes, relations, index, utilisateurs, autorisations, etc.) peuvent être effectués
via le interface utilisateur, tout en ayant toujours la possibilité d'exécuter directement
n'importe quelle instruction SQL.
Parmi ses Caractéristiques :
•Interface Web intuitive
•Prise en charge de la plupart des fonctionnalités MySQL :
•parcourir et supprimer des bases de données, des tables, des vues, des
champs et des index
•créer, copier, supprimer, renommer et modifier des bases de données, des
tables, des champs et index

2 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

•serveur de maintenance, bases de données et tables, avec propositions sur


serveur configuration
•exécuter, modifier et ajouter des favoris Instruction SQL, même requêtes par
lots
•gérer les comptes utilisateur et les privilèges MySQL
•gérer les procédures stockées et les déclencheurs
•Importer des données depuis CSV et SQL
•Exporter les données vers différents formats : CSV, SQL, XML, PDF, ISO/CEI
26300 - Texte et feuille de calcul OpenDocument, Mot, LATEX et d'autres
•Administration de plusieurs serveurs
•Création de graphiques de la présentation de votre base de données dans
différents formats
•Création de requêtes complexes à l'aide de Query-by-example (QBE)
•Recherche globale dans une base de données ou un sous-ensemble de celle-ci
•Transformer les données stockées dans n'importe quel format à l'aide d'un
ensemble de paramètres prédéfinis des fonctions, comme l'affichage des données
BLOB sous forme d'image ou de lien de téléchargement

4. Les types de donné es mysql :

Voici un apercu sur les types de donné es mysql :

INT :

Le type int comporte :

Remarque : unsuigned est un entier non signé

3 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

Nombres décimaux :

Cinq mots-clés permettent de stocker des nombres décimaux dans une colonne :
DECIMAL, NUMERIC, FLOAT, REAL et DOUBLE.

NUMERIC et DECIMAL sont équivalents et acceptent deux paramètres : la précision et


l’échelle.

La précision définit le nombre de chiffres significatifs stockés, donc les 0 à gauche ne


comptent pas. En effet 0024 est équivalent à 24. Il n’y a donc que deux chiffres significatifs
dans 0024.

L’échelle définit le nombre de chiffres après la virgule. Dans un champ DECIMAL(5,3), on


peut donc stocker des nombres de 5 chiffres significatifs maximum, dont 3 chiffres sont
après la virgule.

Par exemple : 12.354, -54.258, 89.2 ou -56. DECIMAL(4) équivaut à écrire DECIMAL(4,
0).

En SQL pur, on ne peut pas stocker dans un champ DECIMAL(5,3) un nombre supérieur
à 99.999, puisque le nombre ne peut avoir que deux chiffres avant la virgule (5 chiffres en
tout, dont 3 après la virgule, 5-3 = 2 avant).

Cependant, MySQL permet en réalité de stocker des nombres allant jusqu’à 999.999. En
effet, dans le cas de nombres positifs, MySQL utilise l’octet qui sert à stocker le signe

FLOAT, DOUBLE et REAL Le mot-clé FLOAT peut s’utiliser sans paramètre, auquel cas
quatre octets sont utilisés pour stocker les valeurs de la colonne. Il est cependant possible
de spécifier une précision et une échelle, de la même manière que pour DECIMAL et
NUMERIC. Quant à REAL et DOUBLE, ils ne supportent pas de paramètres. DOUBLE est
normalement plus précis que REAL (stockage dans 8 octets contre stockage dans 4
octets), mais ce n’est pas le cas avec MySQL qui utilise 8 octets dans les deux cas. Je
vous conseille donc d’utiliser DOUBLE pour éviter les surprises en cas de changement de
SGBDR.

Les nombres stockés en tant que NUMERIC ou DECIMAL sont stockés sous forme de
chaînes de caractères. Par conséquent, c’est la valeur exacte qui est stockée. Par

4 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

contre, les types FLOAT, DOUBLE et REAL sont stockés sous forme de nombres, et c’est
une valeur approchée qui est stockée.

Les Types alphanumériques

CHAR et VARCHAR Pour stocker un texte relativement court (moins de 255 octets), vous
pouvez utiliser les types CHAR et VARCHAR. Ces deux types s’utilisent avec un
paramètre qui précise la taille que peut prendre votre texte (entre 1 et 255). La différence
entre CHAR et VARCHAR est la manière dont ils sont stockés en mémoire. Un CHAR(x)
stockera toujours x octets, en remplissant si nécessaire le texte avec des espaces vides
pour le compléter, tandis qu’un VARCHAR(x) stockera jusqu’à x octets (entre 0 et x), et
stockera en plus en mémoire la taille du texte stocké.

Exemple :

TEXT
pour stocker des textes de plus de 255 octets ? Il suffit alors d’utiliser le type TEXT, ou un
de ses dérivés TINYTEXT, MEDIUMTEXT ou LONGTEXT. La différence entre ceux-ci
étant la place qu’ils permettent d’occuper en mémoire. Petit tableau habituel :

5 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

Chaînes de type binaire


Comme les chaînes de type texte que l’on vient de voir, une chaîne binaire n’est rien
d’autre qu’une suite de caractères. Cependant, si les textes sont affectés par l’encodage
et l’interclassement, ce n’est pas le cas des chaînes binaires. Une chaîne binaire n’est rien
d’autre qu’une suite d’octets. Aucune interprétation n’est faite sur ces octets. Ceci a deux
conséquences principales.
• Une chaîne binaire traite directement l’octet, et pas le caractère que l’octet
représente. Donc par exemple, une recherche sur une chaîne binaire sera
toujours sensible à la casse, puisque ”A” (code binaire : 01000001) sera toujours
différent de ”a” (code binaire : 01100001).
• Tous les caractères sont utilisables, y compris les fameux caractères de contrôle
non affichables définis dans la table ASCII. Par conséquent, les types binaires sont
parfaits pour stocker des données ”brutes” comme des images par exemple, tandis
que les chaînes de texte sont parfaites pour stocker du texte Les types binaires
sont définis de la même façon que les types de chaînes de texte. VARBINARY(x)
et BINARY(x) permettent de stocker des chaînes binaires de x caractères
maximum (avec une gestion de la mémoire identique à VARCHAR(x) et CHAR(x)).
Pour les chaînes plus longues, il existe les types TINYBLOB, BLOB,
MEDIUMBLOB et LONGBLOB, également avec les mêmes limites de stockage
que les types TEXT

SET et ENUM
ENUM Une colonne de type ENUM est une colonne pour laquelle on définit un certain
nombre de valeurs autorisées, de type ”chaîne de caractère”.
Par exemple, si l’on définit une colonne espece (pour une espèce animale) de la manière
suivante :
espece ENUM('chat', 'chien', 'tortue')
La colonne espece pourra alors contenir les chaînes ”chat”, ”chien” ou ”tortue”, mais pas
les chaînes ”lapin” ou ”cheval”. En plus de ”chat”, ”chien” et ”tortue”, la colonne espece
pourrait prendre deux autres valeurs :
• si vous essayez d’introduire une chaîne non-autorisée, MySQL stockera une
chaîne vide '' dans le champ ;
• si vous autorisez le champ à ne pas contenir de valeur (vous verrez comment faire
ça dans le chapitre sur la création des tables), le champ contiendra NULL, qui
correspond à ”pas de valeur” en SQL (et dans beaucoup de langages
informatiques).
Pour remplir un champ de type ENUM, deux possibilités s’offrent à vous :
• soit remplir directement avec la valeur choisie (”chat”, ”chien” ou ”tortue” dans
notre exemple) ;
• soit utiliser l’index de la valeur, c’est-à-dire le nombre associé par MySQL à la
valeur. Ce nombre est compris entre 1 et le nombre de valeurs définies. L’index
est attribué selon l’ordre dans lequel les valeurs ont été données lors de la
création du champ. De plus, la chaîne vide (stockée en cas de valeur non-
autorisée) correspond à l’index 0. Le tableau suivant reprend les valeurs d’index
pour notre exemple précédent : le champ espece.

6 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

SET
SET est fort semblable à ENUM. Une colonne SET est en effet une colonne qui permet de
stocker une chaîne de caractères dont les valeurs possibles sont prédéfinies par
l’utilisateur. La différence avec ENUM, c’est qu’on peut stocker dans la colonne entre 0 et
x valeur(s), x étant le nombre de valeurs autorisées.
Donc, si l’on définit une colonne de type SET de la manière suivante :
espece SET('chat', 'chien', 'tortue') On pourra stocker dans cette colonne :
'' (chaîne vide ) ;
• 'chat' ;
• 'chat,tortue' ;
• 'chat,chien,tortue' ;
Vous remarquerez que lorsqu’on stocke plusieurs valeurs, il faut les séparer par une
virgule, sans espace et entourer la totalité des valeurs par des guillemets (non pas chaque
valeur séparément). Par conséquent, les valeurs autorisées d’une colonne SET ne
peuvent pas contenir de virgule elles-mêmes.
Remarque :
SET et ENUM sont des types de données qui n’existent que chez MySQL. Il vaut donc mieux
éviter de les utiliser

Types temporels
Pour les données temporelles, MySQL dispose de cinq types qui permettent, lorsqu’ils
sont bien utilisés, de faire énormément de choses. Avant d’entrer dans le vif du sujet, une
petite remarque importante : lorsque vous stockez une date dans MySQL, certaines
vérifications sont faites sur la validité de la date entrée. Cependant, ce sont des
vérifications de base : le jour doit être compris entre 1 et 31 et le mois entre 1 et 12. Il vous
est tout à fait possible d’entrer une date telle que le 31 février 2011.
Les cinq types temporels de MySQL sont DATE, DATETIME, TIME, TIMESTAMP et
YEAR.
type Signification Exemple
DATE Une date 'AAAA-MM-JJ' (le format
qu’une DATE stockée dans
MySQL)
'AAMMJJ'
'AAAA/MM/JJ'
'AA+MM+JJ'
'AAAA%MM%JJ'

7 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

AAAAMMJJ (nombre)
AAMMJJ (nombre)
DATETIME La date et l’heure 'AAAA-MM-JJ HH:MM:SS'
(le format stocké dans
MySQL)
'AA*MM*JJ
HH+MM+SS'
AAAAMMJJHHMMSS
(nombre)
TIME Le temps exprimé en 'HH:MM:SS'
Heure :minute:seconde 'HHH:MM:SS'
'MM:SS'
'J HH:MM:SS'
'HHMMSS'
HHMMSS (nombre)
TIMESTAMP le timestamp d’une date est Exemple :
le nombre de secondes 1534786000
écoulées depuis le 1er
janvier 1970, 0h0min0s et la
date en question. Les
timestamps étant stockés
sur 4 octets
YEAR. L’année sur un octet Stockage des années entre
1901 et 2155
ou sous forme de chaîne de
caractères ou d’entiers, avec
2 ou 4 chiffres.

5. La création d’une base de données :

Pour créer une base de données avec PHPmyadmin ; nous procédons comme suit :

8 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

1°) Aprés avoir lancer le serveur de base de données MYSQL , sélectionner Administrateur de
base de données comme suit :

2°) L’interface PHPMYADMIN s’affiche ; commençons par créer une nouvelle base de données ;
cliquer sur Nouvelle base de données sur le volet gauche ;

9 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

3°) Ensuite saisir le nom de la base de données « bdtest » et valider par créer comme suit :

4°) La base de donnée étant crée et valider . Nous allons ensuite l’ouvrir et créer une nouvelle table
que nous appellerons contact de 4 champs comme suit :

5°) Nous allons créer et remplir les 4 champs comme suit :

Le nom du Le type et La taille Autres


champs
idcontact Int (4) AI,non NULL;clé
primaire

Nomcontact Varchar(30) Non Null

10 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

Prenomcontact Varchar(30) Non Null


emailcontact Varchar(40) Non Null

6°) Nous pouvons voir la structure que nous venons de créer dans l ‘onglet structure comme suit :

11 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

7°) Nous pouvons Insérer les données dans la table crée dans l ‘onglet insérer comme suit :

8°) Pour vérifier les données saisi , nous allons sélectionner


l’onglet Parcourir comme suit :

12 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

6 .Les étapes de base pour créer une base de données MySQL en utilisant PHP :
Pour manipuler une base de données en php il faut :
• Établir une connexion au serveur MySQL à partir de votre script PHP .

• Si la connexion réussit, écrivez une requête SQL pour créer une base de données et stockez-
la dans une variable de string.

• Exécutez la requête.

6 .1 La connexion à la base de données

cette fonction Ouvre une nouvelle connexion au serveur MySQL à la base de données "my_db"
$con= mysqli_connect ( "localhost" , "my_user","my_password","my_db");

connect_error() : Renvoie la description de l’erreur de la dernière erreur de connexion

connect_errno() : Renvoyez un code d’erreur de la dernière erreur de connexion

Exemple :
<?php
$connexion=new mysqli("localhost" , "my_user","my_password","my_db");
if ($connexion -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}
?>
6 .2 Lancer une requête à la base de données et récupérer les résultats

query() : Effectuer une requête sur une base de données

fetch_array() : Récupérez une ligne de résultat sous la forme d’un tableau numérique et
d’un tableau associatif

13 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

fetch_all() : Récupère toutes les lignes et renvoie le jeu de résultats sous la forme d’un
tableau associatif

mysqli_num_rows() : Renvoie le nombre de lignes d’un jeu de résultats

fetch_assoc() : Récupérez une ligne de résultat sous la forme d’un tableau associatif :

fetch_fields() : Renvoie un tableau d’objets qui représentent les champs d’un jeu de
résultats, puis imprime L’attribut de chaque champ Nom, table et longueur maximale :

mysqli_num_rows() : Renvoie le nombre de lignes d’un jeu de résultats

affected_rows : Renvoie le nombre de lignes affectées à partir de différentes requêtes :

6 .3 Se déconnecter de la base de données

Pour fermez une connexion à la base de données précédemment ouverte :

$con -> close();

requete de mise à jour

14 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera

EXERCICE 1:

1°) Créer en sql la table personne décrite comme suit :

Champs Type et taille


PersonID int(4) La clé primaire
LastName varchar(30)
FirstName varchar(30)
Address varchar(80)
Ville varchar(25)

2°) Insérer les données suivantes : (125.MADI.LYDIA.124 RUE MOHAMED BELOUIZDAD.


ALGER); (145.YOUBI, meriem;25. RUE LAKID LOTFI.constantine);(155.MEBARMA,
AMINE;25. RUE ELZEITOUNE.ORAN)
3°) Ecrire le script PHP qui permet d’afficher tous les enregistrements correspondant à la table
personne
4°) Ecrire le script PHP qui permet d’ajouter plusieurs personnes ENSUITE LES AFFICHE
5°) Ecrire le script PHP qui permet de supprimer une personnes ensuite affiche le résultats
6°) Ecrire le script PHP qui permet de FAIRE la recherche par FirstName et ensuite affiche le
résultat
6°) Ecrire le script PHP qui permet de modifier une personne affiche le résultat tous les
enregistrements aprés modification

15 / 15

Vous aimerez peut-être aussi