SlideShare une entreprise Scribd logo
PHP & MYSQL
1. Une base de donnée ?
Rappel : Affichage d’une page web
Client InternetClient http
Serveur physique
http://thecorneliusclub.com Requête http
Requête http
SQL Document
Données
Définition : Base De Donnée
Une base de données est un outil permettant de stocker et de
retrouver l'intégralité de données brutes ou d'informations en
rapport avec une activité ; celles-ci peuvent être de natures
différentes et plus ou moins reliées entre elles. Dans la très
grande majorité des cas, ces informations sont très structurées,
et la base est localisée dans un même lieu et sur un même
support. Ce dernier est généralement informatisé.
Source : fr.wikipedia.org
Définition : SGBD
En informatique un système de gestion de base de données est
un logiciel système destiné à stocker et à partager des
informations dans une base de données, en garantissant la qualité,
la pérennité et la confidentialité des informations, tout en cachant
la complexité des opérations.
Source : fr.wikipedia.org
Exemples de SGBD
Définition : Bases et tables
Dans les bases de données relationnelles, une table est un ensemble
de données organisées sous forme d'un tableau où les colonnes
correspondent à des catégories d'information (une colonne peut
stocker des numéros de téléphone, une autre des noms...) et les
lignes à des enregistrements, également appelés entrées.
Source : fr.wikipedia.org
Exemple : Bases et tables
Base « Game Of Thrones »
Id Nom Prénom
1 Snow Jon
2 Stark Arya
Id Nom
1 Winterfell
2 Harrenhal
3 Vivesaigues
Table « Personages » Table « Lieux »
Définition : clé primaire
Dans une base de données relationnelle, une clé primaire est une
contrainte d'unicité qui permet d'identifier de manière unique un
enregistrement dans une table. Une clé primaire peut être
composée d'un ou de plusieurs champs de la table. Deux lignes
distinctes de la table ne peuvent pas avoir les mêmes valeurs pour
les champs définis au niveau de la clé primaire.
Source : fr.wikipedia.org
2. Administrer une base de donnée
Outils
sequelpro.comphpmyadmin.net
Accéder à phpMyAdmin
WAMP : Via l'icône de la barre des taches
MAMP : http://localhost:8888/MAMP/
phpMyAdmin (1)
phpMyAdmin (2)
Créer une base de donnée « ecole »
Interclassement : utf8_unicode_ci
phpMyAdmin (3)
phpMyAdmin (4)
Créer une table « classement »
Nombre de colonnes : 4
phpMyAdmin (5)
phpMyAdmin (6)
Colonne 1 : id / int / primary / A_I
Colonne 2 : nom / varchar / 255
Colonne 3 : score / int
Colonne 4 : temps / int
3. PHP & MYSQL
PHP Data Objects
PDO (PHP Data Objects), extension définissant l'interface pour
accéder à une base de données depuis PHP.
Source : fr.wikipedia.org
PHP Data Objects
PDO
Se connecter à la base de donnée
<?php
$bdd = new PDO('mysql:host=localhost;dbname=blog', 'root', '');
?>
‘localhost’ : nom de l'hôte de la bdd
‘blog’ => nom de la bdd
‘root’ : login de connexion
‘’ => mot de passe de connexion
Tester la connexion à la base de donnée
<?php
try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=blog', 'root', '', $pdo_options);
}
catch (Exception $e){
die('Erreur : ' . $e->getMessage());
}
?>
4. Lire des données
Récupérer les données
<?php
$reponse = $bdd->query('requête SQL');
// Traitement des données
$reponse->closeCursor();
?>
Parcourir les données
<?php
$reponse = $bdd->query('requête SQL');
while ($donnees = $reponse->fetch())
{
echo $donnees['nom_du_champ'];
}
$reponse->closeCursor();
?>
4.1 Structured Query Language
Structured Query Language ?
SQL (sigle de Structured Query Language) est un langage
informatique normalisé servant à exploiter des bases de
données relationnelles. La partie langage de manipulation des
données de SQL permet de rechercher, d'ajouter, de modifier
ou de supprimer des données dans les bases de données
relationnelles.
Source : fr.wikipedia.org
Rechercher des données (1)
SELECT * FROM billet
Sélectionner tous les champs de tous les
enregistrement de la table billet.
Rechercher des données (2)
SELECT titre, contenu FROM billet
Sélectionner les champs titre et billet de
tous les enregistrement de la table billet.
Rechercher des données (3)
SELECT titre, contenu FROM billet WHERE id = 1
Sélectionner les champs titre et billet de
l’enregistrement ayant l’id 1 de la table billet.
Rechercher des données (4)
SELECT titre, contenu FROM billet ORDER BY titre
Sélectionner les champs titre et billet de
tous les enregistrement de la table billet classé par titre.
4. Ajouter, modifier et supprimer des données
Ajouter un enregistrement
<?php
$req = $bdd->prepare('INSERT INTO article(titre, contenu, auteur) VALUES(:titre, :contenu, :auteur)');
$req->execute(array(
'titre' => $superTitre,
'contenu' => $contenu,
'auteur' => 'Jean MICHEL'
));
?>
Modifier un enregistrement
<?php
$req = $bdd->prepare('UPDATE article SET titre = :titre WHERE id = :id');
$req->execute(array(
'titre' => $titre,
'id' => $id
));
?>
Supprimer un enregistrement
<?php
$req = $bdd->prepare("DELETE FROM article WHERE id=:id");
$req->execute(array('id' => $id));
?>
4. Mise en pratique
Exercice : En route pour l’école !
A la fin du quizz, sauvegarder le nom et le score de
l’utilisateur dans la base de donnée.
Sur la page classement afficher les meilleurs scores.
Créer la page « classement », écrans disponibles ici :
https://www.dropbox.com/sh/2acjriyz16wzwgo/AABqbnLoAkw_LHwWEfOekBHOa?dl=0
Merci pour votre attention.

Contenu connexe

Tendances (19)

DOC
Cours access
Mouhssine Lamlaoui
 
PPTX
Nettoyer et transformer ses données avec Openrefine : partie 2
Mathieu Saby
 
PPTX
Nettoyer et préparer des données avec OpenRefine
Mathieu Saby
 
PPTX
Nettoyer et transformer ses données avec Openrefine : partie 1
Mathieu Saby
 
PDF
Php
karousn
 
PDF
Le langage sql
Abderrahim Aitali
 
PPTX
La 2ème partie de la présentation PHP
Club Scientifique de l'ESI - CSE
 
PDF
Sgbdr
hassan1488
 
PPTX
Rapport open erp
Hassan WAHSISS
 
PDF
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
ATPENSC-Group
 
PDF
Les API de HAL - Formation CCSD mars 2016
OAccsd
 
PPT
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Gautier Poupeau
 
ODP
Interrogation des données
Musatge
 
PPTX
Theme 8
salmazen
 
PDF
Cours access
msodjinou
 
PPT
Php cours
funinformatique
 
ODP
SGBDR - MySQL
Musatge
 
PDF
Android - Tp 5 - stockage de données
Lilia Sfaxi
 
PDF
Intégration #2 : HTML 101 : Back to Basics
Jean Michel
 
Cours access
Mouhssine Lamlaoui
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Mathieu Saby
 
Nettoyer et préparer des données avec OpenRefine
Mathieu Saby
 
Nettoyer et transformer ses données avec Openrefine : partie 1
Mathieu Saby
 
Php
karousn
 
Le langage sql
Abderrahim Aitali
 
La 2ème partie de la présentation PHP
Club Scientifique de l'ESI - CSE
 
Sgbdr
hassan1488
 
Rapport open erp
Hassan WAHSISS
 
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
ATPENSC-Group
 
Les API de HAL - Formation CCSD mars 2016
OAccsd
 
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Gautier Poupeau
 
Interrogation des données
Musatge
 
Theme 8
salmazen
 
Cours access
msodjinou
 
Php cours
funinformatique
 
SGBDR - MySQL
Musatge
 
Android - Tp 5 - stockage de données
Lilia Sfaxi
 
Intégration #2 : HTML 101 : Back to Basics
Jean Michel
 

En vedette (20)

PDF
WebApp #2 : responsive design
Jean Michel
 
PDF
Javascript #5.1 : tp1 zombies!
Jean Michel
 
PDF
Javascript #3 : boucles & conditions
Jean Michel
 
PDF
Html & Css #6 : formulaires
Jean Michel
 
PDF
Architecture logicielle #5 : hipsto framework
Jean Michel
 
PDF
Javascript #2 : valeurs, types & opérateurs
Jean Michel
 
PDF
PHP & MYSQL #5 : fonctions
Jean Michel
 
PDF
Architecture logicielle #2 : TP timezone
Jean Michel
 
PDF
Projet timezone
Jean Michel
 
PDF
Gestion de projet #3 : besoin client
Jean Michel
 
PDF
Javascript #4.1 : fonctions for noobs
Jean Michel
 
PDF
Javascript #4.2 : fonctions for pgm
Jean Michel
 
PDF
Wordpress #2 : customisation
Jean Michel
 
PDF
Javascript #8 : événements
Jean Michel
 
PDF
Une introduction à Javascript
Jean Michel
 
PDF
Architecture logicielle #3 : object oriented design
Jean Michel
 
PDF
Wordpress #3 : content strategie
Jean Michel
 
PDF
#4 css 101
Jean Michel
 
PDF
PHP #3 : tableaux & formulaires
Jean Michel
 
PDF
Javascript #11: Space invader
Jean Michel
 
WebApp #2 : responsive design
Jean Michel
 
Javascript #5.1 : tp1 zombies!
Jean Michel
 
Javascript #3 : boucles & conditions
Jean Michel
 
Html & Css #6 : formulaires
Jean Michel
 
Architecture logicielle #5 : hipsto framework
Jean Michel
 
Javascript #2 : valeurs, types & opérateurs
Jean Michel
 
PHP & MYSQL #5 : fonctions
Jean Michel
 
Architecture logicielle #2 : TP timezone
Jean Michel
 
Projet timezone
Jean Michel
 
Gestion de projet #3 : besoin client
Jean Michel
 
Javascript #4.1 : fonctions for noobs
Jean Michel
 
Javascript #4.2 : fonctions for pgm
Jean Michel
 
Wordpress #2 : customisation
Jean Michel
 
Javascript #8 : événements
Jean Michel
 
Une introduction à Javascript
Jean Michel
 
Architecture logicielle #3 : object oriented design
Jean Michel
 
Wordpress #3 : content strategie
Jean Michel
 
#4 css 101
Jean Michel
 
PHP #3 : tableaux & formulaires
Jean Michel
 
Javascript #11: Space invader
Jean Michel
 
Publicité

Similaire à PHP #6 : mysql (20)

PDF
presentationatelierphpprt2-140314143938-phpapp02.pdf
RihabBENLAMINE
 
PPTX
Pro_Langage_PHP_LES_BASES_DE_DONNEES.pptx
AhmatAbakar1
 
PDF
s3-base de données .pdf
elfahsym
 
PDF
INF240 - Bases de données DUT SRC1 - Cours 3
PGambette
 
PDF
Le langage sql
Abderrahim Aitali
 
PPTX
Resume SGBDR
Khaldi Abdelhamid HAbib
 
PDF
initiation-cours-Bases-de-Donnees-Php.pdf
djidel2023
 
PPTX
4-TP BD.pptx
salimtayaadine
 
PDF
Base donnes my_sql
Self-employed
 
PPTX
Ce cours est un tutoriel de programmation PHP en accéléré.
med_univ78
 
PPTX
Php & My Sql
guest6c050e
 
PPTX
Php & My Sql
cecile59
 
PPTX
informatique base de données cours MCD, MLD
amchahdi18
 
DOCX
Chapitre 2
abderrahmane ourahhou
 
PDF
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
 
PPTX
Concepts et langages des Bases de Données Relationnelles.pptx
bencharqui
 
PDF
Bases de donnees fondamentaux
Rokhaya CISSE
 
PPT
Base de donnees Avancees et Intro à NoSQL.ppt
Idriss22
 
PDF
Fiche 1-SQL
fahmi bargui
 
PDF
Développement Web- PHP (partie II).pdf
YasushiTsubakik
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
RihabBENLAMINE
 
Pro_Langage_PHP_LES_BASES_DE_DONNEES.pptx
AhmatAbakar1
 
s3-base de données .pdf
elfahsym
 
INF240 - Bases de données DUT SRC1 - Cours 3
PGambette
 
Le langage sql
Abderrahim Aitali
 
initiation-cours-Bases-de-Donnees-Php.pdf
djidel2023
 
4-TP BD.pptx
salimtayaadine
 
Base donnes my_sql
Self-employed
 
Ce cours est un tutoriel de programmation PHP en accéléré.
med_univ78
 
Php & My Sql
guest6c050e
 
Php & My Sql
cecile59
 
informatique base de données cours MCD, MLD
amchahdi18
 
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
 
Concepts et langages des Bases de Données Relationnelles.pptx
bencharqui
 
Bases de donnees fondamentaux
Rokhaya CISSE
 
Base de donnees Avancees et Intro à NoSQL.ppt
Idriss22
 
Fiche 1-SQL
fahmi bargui
 
Développement Web- PHP (partie II).pdf
YasushiTsubakik
 
Publicité

Plus de Jean Michel (19)

PDF
Startup #7 : how to get customers
Jean Michel
 
PDF
Javascript #2.2 : jQuery
Jean Michel
 
PDF
HTML & CSS #10 : Bootstrap
Jean Michel
 
PDF
Javascript #10 : canvas
Jean Michel
 
PDF
Architecture logicielle #4 : mvc
Jean Michel
 
PDF
Architecture logicielle #1 : introduction
Jean Michel
 
PDF
Wordpress #1 : introduction
Jean Michel
 
PDF
PHP #7 : guess who?
Jean Michel
 
PDF
PHP #4 : sessions & cookies
Jean Michel
 
PDF
PHP #2 : variables, conditions & boucles
Jean Michel
 
PDF
PHP #1 : introduction
Jean Michel
 
PDF
Dev Web 101 #2 : development for dummies
Jean Michel
 
PDF
Startup #5 : pitch
Jean Michel
 
PDF
WebApp #4 : Consuming REST APIs
Jean Michel
 
PDF
Projet timezone
Jean Michel
 
PDF
WebApp #3 : API
Jean Michel
 
PDF
Gestion de projet #4 : spécification
Jean Michel
 
PDF
WebApp #1 : introduction
Jean Michel
 
PDF
Javascript #7 : manipuler le dom
Jean Michel
 
Startup #7 : how to get customers
Jean Michel
 
Javascript #2.2 : jQuery
Jean Michel
 
HTML & CSS #10 : Bootstrap
Jean Michel
 
Javascript #10 : canvas
Jean Michel
 
Architecture logicielle #4 : mvc
Jean Michel
 
Architecture logicielle #1 : introduction
Jean Michel
 
Wordpress #1 : introduction
Jean Michel
 
PHP #7 : guess who?
Jean Michel
 
PHP #4 : sessions & cookies
Jean Michel
 
PHP #2 : variables, conditions & boucles
Jean Michel
 
PHP #1 : introduction
Jean Michel
 
Dev Web 101 #2 : development for dummies
Jean Michel
 
Startup #5 : pitch
Jean Michel
 
WebApp #4 : Consuming REST APIs
Jean Michel
 
Projet timezone
Jean Michel
 
WebApp #3 : API
Jean Michel
 
Gestion de projet #4 : spécification
Jean Michel
 
WebApp #1 : introduction
Jean Michel
 
Javascript #7 : manipuler le dom
Jean Michel
 

PHP #6 : mysql

  • 2. 1. Une base de donnée ?
  • 3. Rappel : Affichage d’une page web Client InternetClient http Serveur physique http://thecorneliusclub.com Requête http Requête http SQL Document Données
  • 4. Définition : Base De Donnée Une base de données est un outil permettant de stocker et de retrouver l'intégralité de données brutes ou d'informations en rapport avec une activité ; celles-ci peuvent être de natures différentes et plus ou moins reliées entre elles. Dans la très grande majorité des cas, ces informations sont très structurées, et la base est localisée dans un même lieu et sur un même support. Ce dernier est généralement informatisé. Source : fr.wikipedia.org
  • 5. Définition : SGBD En informatique un système de gestion de base de données est un logiciel système destiné à stocker et à partager des informations dans une base de données, en garantissant la qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des opérations. Source : fr.wikipedia.org
  • 7. Définition : Bases et tables Dans les bases de données relationnelles, une table est un ensemble de données organisées sous forme d'un tableau où les colonnes correspondent à des catégories d'information (une colonne peut stocker des numéros de téléphone, une autre des noms...) et les lignes à des enregistrements, également appelés entrées. Source : fr.wikipedia.org
  • 8. Exemple : Bases et tables Base « Game Of Thrones » Id Nom Prénom 1 Snow Jon 2 Stark Arya Id Nom 1 Winterfell 2 Harrenhal 3 Vivesaigues Table « Personages » Table « Lieux »
  • 9. Définition : clé primaire Dans une base de données relationnelle, une clé primaire est une contrainte d'unicité qui permet d'identifier de manière unique un enregistrement dans une table. Une clé primaire peut être composée d'un ou de plusieurs champs de la table. Deux lignes distinctes de la table ne peuvent pas avoir les mêmes valeurs pour les champs définis au niveau de la clé primaire. Source : fr.wikipedia.org
  • 10. 2. Administrer une base de donnée
  • 12. Accéder à phpMyAdmin WAMP : Via l'icône de la barre des taches MAMP : http://localhost:8888/MAMP/
  • 14. phpMyAdmin (2) Créer une base de donnée « ecole » Interclassement : utf8_unicode_ci
  • 16. phpMyAdmin (4) Créer une table « classement » Nombre de colonnes : 4
  • 18. phpMyAdmin (6) Colonne 1 : id / int / primary / A_I Colonne 2 : nom / varchar / 255 Colonne 3 : score / int Colonne 4 : temps / int
  • 19. 3. PHP & MYSQL
  • 20. PHP Data Objects PDO (PHP Data Objects), extension définissant l'interface pour accéder à une base de données depuis PHP. Source : fr.wikipedia.org
  • 22. Se connecter à la base de donnée <?php $bdd = new PDO('mysql:host=localhost;dbname=blog', 'root', ''); ?> ‘localhost’ : nom de l'hôte de la bdd ‘blog’ => nom de la bdd ‘root’ : login de connexion ‘’ => mot de passe de connexion
  • 23. Tester la connexion à la base de donnée <?php try{ $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=blog', 'root', '', $pdo_options); } catch (Exception $e){ die('Erreur : ' . $e->getMessage()); } ?>
  • 24. 4. Lire des données
  • 25. Récupérer les données <?php $reponse = $bdd->query('requête SQL'); // Traitement des données $reponse->closeCursor(); ?>
  • 26. Parcourir les données <?php $reponse = $bdd->query('requête SQL'); while ($donnees = $reponse->fetch()) { echo $donnees['nom_du_champ']; } $reponse->closeCursor(); ?>
  • 28. Structured Query Language ? SQL (sigle de Structured Query Language) est un langage informatique normalisé servant à exploiter des bases de données relationnelles. La partie langage de manipulation des données de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles. Source : fr.wikipedia.org
  • 29. Rechercher des données (1) SELECT * FROM billet Sélectionner tous les champs de tous les enregistrement de la table billet.
  • 30. Rechercher des données (2) SELECT titre, contenu FROM billet Sélectionner les champs titre et billet de tous les enregistrement de la table billet.
  • 31. Rechercher des données (3) SELECT titre, contenu FROM billet WHERE id = 1 Sélectionner les champs titre et billet de l’enregistrement ayant l’id 1 de la table billet.
  • 32. Rechercher des données (4) SELECT titre, contenu FROM billet ORDER BY titre Sélectionner les champs titre et billet de tous les enregistrement de la table billet classé par titre.
  • 33. 4. Ajouter, modifier et supprimer des données
  • 34. Ajouter un enregistrement <?php $req = $bdd->prepare('INSERT INTO article(titre, contenu, auteur) VALUES(:titre, :contenu, :auteur)'); $req->execute(array( 'titre' => $superTitre, 'contenu' => $contenu, 'auteur' => 'Jean MICHEL' )); ?>
  • 35. Modifier un enregistrement <?php $req = $bdd->prepare('UPDATE article SET titre = :titre WHERE id = :id'); $req->execute(array( 'titre' => $titre, 'id' => $id )); ?>
  • 36. Supprimer un enregistrement <?php $req = $bdd->prepare("DELETE FROM article WHERE id=:id"); $req->execute(array('id' => $id)); ?>
  • 37. 4. Mise en pratique
  • 38. Exercice : En route pour l’école ! A la fin du quizz, sauvegarder le nom et le score de l’utilisateur dans la base de donnée. Sur la page classement afficher les meilleurs scores. Créer la page « classement », écrans disponibles ici : https://www.dropbox.com/sh/2acjriyz16wzwgo/AABqbnLoAkw_LHwWEfOekBHOa?dl=0
  • 39. Merci pour votre attention.