PHP #6 : mysql

39
PHP & MYSQL

Transcript of PHP #6 : mysql

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 billetSélectionner tous les champs de tous les

enregistrement de la table billet.

Rechercher des données (2)

SELECT titre, contenu FROM billetSé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.