DY

TP21: SQL, SQLite & PHP

Keyforge

KeyForge est un JCE à Deck unique créé par Richard Garfield (le papa de Magic!) et publié par Fantasy Flight Games.

Dans ce jeu, les joueurs jouent le rôle d’Archontes dans le monde du Creuset. Le premier joueur à collecter suffisamment d'«Æmber» pour forger trois clés est déclaré vainqueur.

Le jeu dans sa version de lancement comporte 371 cartes différentes.

Keyforge UML Database Scheme
Diagramme UML de la base de données keyforge

Lecture de la base de données

Lecture simple

En utilisant la base de données SQLite keyforge.sqlite3.

Rappel Syntaxe SQL
/* Sélection */
SELECT [ * / columns_name ] FROM tablename;

/* Compter */
SELECT COUNT(column_name) FROM table_name;

/* Trier */
SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
Rappel Syntaxe PHP

Gestion des exceptions

<?php

//Connexion à la base de données avec gestion des exceptions
try { 
    $db = new PDO('sqlite:database_filepath');
} catch(Exception $e){
    die('Erreur : ' . $e->getMessage());
}

//Execution d'une requête
$query = $db->prepare("SELECT * FROM jeux");
$query->execute(); 
while ($donnees = $query->fetch()){
    echo($donnees['nom'] . $donnees['description'];
}
$query->closeCursor();
Jointure(s)

Écriture dans la base de données

Toujours en utilisant la base de données SQLite précédente.

Rappel Syntaxe SQL

Insertion

/* INSERTION */
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);
/* MAJ */
UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value;
Rappel Syntaxe PHP

Un exemple d'exécution d'une requête préparée avec l'utilisation de variables

<?php
//On suppose que les variables $nom, $type, $desc et $note ont été initialisées

$query = $db->prepare('INSERT INTO jeux(nom, type, description,note) VALUES(:nom, :types, :descr, :note)');

$query->execute(array(
    'nom' => $nom,
    'types' => $type,
    'descr' => $desc,
    'note' => $note,
));