SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
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

Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Mathieu Saby
 
Nettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefineNettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefineMathieu Saby
 
Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1Mathieu Saby
 
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
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
Les API de HAL - Formation CCSD mars 2016Les API de HAL - Formation CCSD mars 2016
Les API de HAL - Formation CCSD mars 2016OAccsd
 
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...Gautier Poupeau
 
Interrogation des données
Interrogation des donnéesInterrogation des données
Interrogation des donnéesMusatge
 
Cours access
Cours accessCours access
Cours accessmsodjinou
 
SGBDR - MySQL
SGBDR - MySQLSGBDR - MySQL
SGBDR - MySQLMusatge
 
Android - Tp 5 - stockage de données
Android - Tp 5 -  stockage de donnéesAndroid - Tp 5 -  stockage de données
Android - Tp 5 - stockage de donnéesLilia Sfaxi
 
Intégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to BasicsIntégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to BasicsJean Michel
 

Tendances (19)

Cours access
Cours accessCours access
Cours access
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
 
Nettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefineNettoyer et préparer des données avec OpenRefine
Nettoyer et préparer des données avec OpenRefine
 
Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1Nettoyer et transformer ses données avec Openrefine : partie 1
Nettoyer et transformer ses données avec Openrefine : partie 1
 
Php
PhpPhp
Php
 
Le langage sql
Le langage sqlLe langage sql
Le langage sql
 
La 2ème partie de la présentation PHP
La 2ème partie de la présentation PHPLa 2ème partie de la présentation PHP
La 2ème partie de la présentation PHP
 
Sgbdr
SgbdrSgbdr
Sgbdr
 
Rapport open erp
Rapport open erpRapport open erp
Rapport open erp
 
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
Fiche de TP 3 sur les bases de données avec les SGBD(Système de Gestion des B...
 
Les API de HAL - Formation CCSD mars 2016
Les API de HAL - Formation CCSD mars 2016Les API de HAL - Formation CCSD mars 2016
Les API de HAL - Formation CCSD mars 2016
 
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
 
Interrogation des données
Interrogation des donnéesInterrogation des données
Interrogation des données
 
Theme 8
Theme 8Theme 8
Theme 8
 
Cours access
Cours accessCours access
Cours access
 
Php cours
Php coursPhp cours
Php cours
 
SGBDR - MySQL
SGBDR - MySQLSGBDR - MySQL
SGBDR - MySQL
 
Android - Tp 5 - stockage de données
Android - Tp 5 -  stockage de donnéesAndroid - Tp 5 -  stockage de données
Android - Tp 5 - stockage de données
 
Intégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to BasicsIntégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to Basics
 

En vedette

WebApp #2 : responsive design
WebApp #2 : responsive designWebApp #2 : responsive design
WebApp #2 : responsive designJean Michel
 
Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!Jean Michel
 
Javascript #3 : boucles & conditions
Javascript #3 : boucles & conditionsJavascript #3 : boucles & conditions
Javascript #3 : boucles & conditionsJean Michel
 
Html & Css #6 : formulaires
Html & Css #6 : formulairesHtml & Css #6 : formulaires
Html & Css #6 : formulairesJean Michel
 
Architecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkArchitecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkJean Michel
 
Javascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateursJavascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateursJean Michel
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctionsJean Michel
 
Architecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneArchitecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneJean Michel
 
Gestion de projet #3 : besoin client
Gestion de projet #3 : besoin clientGestion de projet #3 : besoin client
Gestion de projet #3 : besoin clientJean Michel
 
Javascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJavascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJean Michel
 
Javascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgmJavascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgmJean Michel
 
Wordpress #2 : customisation
Wordpress #2 : customisationWordpress #2 : customisation
Wordpress #2 : customisationJean Michel
 
Javascript #8 : événements
Javascript #8 : événementsJavascript #8 : événements
Javascript #8 : événementsJean Michel
 
Une introduction à Javascript
Une introduction à JavascriptUne introduction à Javascript
Une introduction à JavascriptJean Michel
 
Architecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designArchitecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designJean Michel
 
Wordpress #3 : content strategie
Wordpress #3 : content strategieWordpress #3 : content strategie
Wordpress #3 : content strategieJean Michel
 
PHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulairesPHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulairesJean Michel
 
Javascript #11: Space invader
Javascript #11: Space invaderJavascript #11: Space invader
Javascript #11: Space invaderJean Michel
 

En vedette (20)

WebApp #2 : responsive design
WebApp #2 : responsive designWebApp #2 : responsive design
WebApp #2 : responsive design
 
Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!
 
Javascript #3 : boucles & conditions
Javascript #3 : boucles & conditionsJavascript #3 : boucles & conditions
Javascript #3 : boucles & conditions
 
Html & Css #6 : formulaires
Html & Css #6 : formulairesHtml & Css #6 : formulaires
Html & Css #6 : formulaires
 
Architecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkArchitecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto framework
 
Javascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateursJavascript #2 : valeurs, types & opérateurs
Javascript #2 : valeurs, types & opérateurs
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctions
 
Architecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneArchitecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezone
 
Projet timezone
Projet timezoneProjet timezone
Projet timezone
 
Gestion de projet #3 : besoin client
Gestion de projet #3 : besoin clientGestion de projet #3 : besoin client
Gestion de projet #3 : besoin client
 
Javascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJavascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobs
 
Javascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgmJavascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgm
 
Wordpress #2 : customisation
Wordpress #2 : customisationWordpress #2 : customisation
Wordpress #2 : customisation
 
Javascript #8 : événements
Javascript #8 : événementsJavascript #8 : événements
Javascript #8 : événements
 
Une introduction à Javascript
Une introduction à JavascriptUne introduction à Javascript
Une introduction à Javascript
 
Architecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designArchitecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented design
 
Wordpress #3 : content strategie
Wordpress #3 : content strategieWordpress #3 : content strategie
Wordpress #3 : content strategie
 
#4 css 101
#4 css 101#4 css 101
#4 css 101
 
PHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulairesPHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulaires
 
Javascript #11: Space invader
Javascript #11: Space invaderJavascript #11: Space invader
Javascript #11: Space invader
 

Similaire à PHP #6 : mysql

INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3PGambette
 
Support de cours ACCESS
Support de cours ACCESSSupport de cours ACCESS
Support de cours ACCESSChingongou ­
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementMohamed hedi Abidi
 
Modèles de données et langages de description ouverts 4 - 2021-2022
Modèles de données et langages de description ouverts   4 - 2021-2022Modèles de données et langages de description ouverts   4 - 2021-2022
Modèles de données et langages de description ouverts 4 - 2021-2022François-Xavier Boffy
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Laurent BUNIET
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sqlcecile59
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
Ado.net vs jpa
Ado.net vs jpaAdo.net vs jpa
Ado.net vs jpaNetways
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbcvangogue
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQSaid Sadik
 

Similaire à PHP #6 : mysql (20)

INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3
 
Le langage sql
Le langage sqlLe langage sql
Le langage sql
 
Php1
Php1Php1
Php1
 
Connaître et convertir les formats de données
Connaître et convertir les formats de donnéesConnaître et convertir les formats de données
Connaître et convertir les formats de données
 
Resume SGBDR
Resume SGBDRResume SGBDR
Resume SGBDR
 
Support de cours ACCESS
Support de cours ACCESSSupport de cours ACCESS
Support de cours ACCESS
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Modèles de données et langages de description ouverts 4 - 2021-2022
Modèles de données et langages de description ouverts   4 - 2021-2022Modèles de données et langages de description ouverts   4 - 2021-2022
Modèles de données et langages de description ouverts 4 - 2021-2022
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Introduction à XML
Introduction à XMLIntroduction à XML
Introduction à XML
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Ado.net vs jpa
Ado.net vs jpaAdo.net vs jpa
Ado.net vs jpa
 
java BDD jdbc
java BDD jdbcjava BDD jdbc
java BDD jdbc
 
Chapitre 2
Chapitre 2Chapitre 2
Chapitre 2
 
presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
 

Plus de Jean Michel

Startup #7 : how to get customers
Startup #7 : how to get customersStartup #7 : how to get customers
Startup #7 : how to get customersJean Michel
 
Javascript #2.2 : jQuery
Javascript #2.2 : jQueryJavascript #2.2 : jQuery
Javascript #2.2 : jQueryJean Michel
 
HTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapHTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapJean Michel
 
Javascript #10 : canvas
Javascript #10 : canvasJavascript #10 : canvas
Javascript #10 : canvasJean Michel
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvcJean Michel
 
Architecture logicielle #1 : introduction
Architecture logicielle #1 : introductionArchitecture logicielle #1 : introduction
Architecture logicielle #1 : introductionJean Michel
 
Wordpress #1 : introduction
Wordpress #1 : introductionWordpress #1 : introduction
Wordpress #1 : introductionJean Michel
 
PHP #7 : guess who?
PHP #7 : guess who?PHP #7 : guess who?
PHP #7 : guess who?Jean Michel
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookiesJean Michel
 
PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles Jean Michel
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introductionJean Michel
 
Dev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesDev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesJean Michel
 
Startup #5 : pitch
Startup #5 : pitchStartup #5 : pitch
Startup #5 : pitchJean Michel
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs Jean Michel
 
Gestion de projet #4 : spécification
Gestion de projet #4 : spécificationGestion de projet #4 : spécification
Gestion de projet #4 : spécificationJean Michel
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introductionJean Michel
 
Javascript #7 : manipuler le dom
Javascript #7 : manipuler le domJavascript #7 : manipuler le dom
Javascript #7 : manipuler le domJean Michel
 

Plus de Jean Michel (19)

Startup #7 : how to get customers
Startup #7 : how to get customersStartup #7 : how to get customers
Startup #7 : how to get customers
 
Javascript #2.2 : jQuery
Javascript #2.2 : jQueryJavascript #2.2 : jQuery
Javascript #2.2 : jQuery
 
HTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapHTML & CSS #10 : Bootstrap
HTML & CSS #10 : Bootstrap
 
Javascript #10 : canvas
Javascript #10 : canvasJavascript #10 : canvas
Javascript #10 : canvas
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvc
 
Architecture logicielle #1 : introduction
Architecture logicielle #1 : introductionArchitecture logicielle #1 : introduction
Architecture logicielle #1 : introduction
 
Wordpress #1 : introduction
Wordpress #1 : introductionWordpress #1 : introduction
Wordpress #1 : introduction
 
PHP #7 : guess who?
PHP #7 : guess who?PHP #7 : guess who?
PHP #7 : guess who?
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookies
 
PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
 
Dev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesDev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummies
 
Startup #5 : pitch
Startup #5 : pitchStartup #5 : pitch
Startup #5 : pitch
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs
 
Projet timezone
Projet timezoneProjet timezone
Projet timezone
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
 
Gestion de projet #4 : spécification
Gestion de projet #4 : spécificationGestion de projet #4 : spécification
Gestion de projet #4 : spécification
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introduction
 
Javascript #7 : manipuler le dom
Javascript #7 : manipuler le domJavascript #7 : manipuler le dom
Javascript #7 : manipuler le dom
 

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.