Créer des tables dans MySql et créer des requêtes SQL

Dans votre projet PHP, vous allez avoir besoin d'enregistrer et récupérer des informations dans votre base de données. Pour cela, il faut créer une base de données qui va contenir les tables d'enregistrements de vos données.

Création d'une base de données avec PhpMyAdmin

Quelques requêtes SQL utiles pour votre projet

Pour votre projet vous allez avoir besoin de connaître les requête SQL suivantes

Pour tester vos requête SQL avant de les rendre dynamique avec PHP vous pouvez utiliser l'outil SQL de phpMyAdmin pour écrire et exécuter des requêtes.

SQL – INSERT INTO (insérer des données dans une table)

Il existe trois façons de faire un INSERT dans une table. Ici nous allons voir uniquement la façon la mieux adaptée à votre projet et niveau d'expérience. Nous allons insérer une ligne dans la table souhaitée en ne spécifiant que les colonnes souhaitées. Nous allons par exemple ne pas indiquer la colonne qui comporte la clé primaire qui a un auto_increment et qui va se gérer toute seule.

Exemple :


INSERT INTO nom_table (nom_colonne_1, nom_colonne_2, ...
 VALUES ('valeur colonne_1', 'valeur colonne_2', ...)

Explication :
Après avoir indiqué le nom de la table dans laquelle vous souhaitez ajouter une ligne, vous allez indiquer, entre parenthèse, le nom de chaque colonne dans laquelle vous allez ajouter une informations. Ensuite vous allez ajouter, entre des parenthèses, les valeurs que vous avez récupéré à l'aide de PHP avec l'instruction SQL « VALUES ». Attention la première valeur va être enregistrée dans le nom de la première colonne, la deuxième valeur dans le nom de la deuxième colonne etc.

Dans notre projet votre requête aura sans doute la forme suivante :


INSERT INTO article (articleTitre, articleTexte, articleDate, articleNomImage, articleTheme)
 VALUES ('$titre', '$texte', '$date', '$imageName', $theme)

Remarques :
Il faut encadrer les valeurs avec des simples cotes sauf si la colonne récupère un format de type INT (nombre). Dans ce cas on ne met pas de simples cotes.

Pour en savoir plus sur la requête INSERT : https://sql.sh/cours/insert-into

SQL – SELECT - WHERE - ORDER BY (lire des données dans une table et les classer)

C'est la plus simple des requêtes et la plus utilisée. Elle est utilisée pour récupérer de l'information de notre base de données. Votre méthode PHP de connexion à la base de données va récupérer les informations soit dans un tableau (array) soit dans un objet en fonction de votre demande. Il faudra alors ensuite parcourir votre tableau ou objet de résultats.

Exemples de requêtes à utiliser dans votre projet :
$sql = " SELECT * FROM article ";

Cette requête va récupérer toutes les valeurs de la table article, c'est à dire tous les articles. Le '*' après le SELECT indique toutes les colonnes de la table.

En français on pourrait traduire la requête par :
Récupère (SELECT) les informations des colonnes suivantes (ici toutes les colonnes '*') de la table (FROM) article.

Si vous souhaitez ne récupérer que quelques colonnes alors il faudra les indiquer après le SELECT en les séparant par des virgules :

$sql = " SELECT articleTitre, articleTexte, articleDate FROM article ";

La commande WHERE

Pour ne récupérer que certains enregistrements voir un seul vous allez ajouter à votre requête SELECT la commande WHERE qui va sélectionner une liste d'enregistrement que vous aurez choisi.

Exemples de fonctions WHERE :

Récupérer un article


$sql = "SELECT * FROM article WHERE articleId = '$articleId' " ;

Pour tout savoir sur cette fonction WHERE c'est ici : https://sql.sh/cours/where

La commande ORDER BY :

Cette commande à ajouter à la fin de votre requête SQL vous permet de classer vos résultats par ordre ascendant ou descendant (croissant, décroissant, alphabétique). La force de cette commande est que vous pouvez faire un tri sur plusieurs colonnes. Par exemple trier la liste des utilisateurs sur les noms de famille en utilisant l'ordre alphabétique. Puis si il y a plusieurs noms de familles identiques, on va trier par ordre alphabétique sur les prénoms.

Pour tout savoir sur la commande ORDER BY : https://sql.sh/cours/order-by

SQL – UPDATE (modifier des données dans une table)

Pour tout savoir sur la fonction UPDATE : https://sql.sh/cours/update

SQL – DELETE (Supprimer une ligne d'enregistrement dans une table)

Pour tout savoir sur la fonction DELETE : https://sql.sh/cours/delete

SQL – Les jointures (lire des données dans plusieurs tables ayant un identifiant en commun)

Il existe ne nombreuses façons de relier deux ou plusieurs tables entre elles en fonction des données que vous stockez.
Pour votre projet, le mieux est d'utiliser la jointure la plus commune qui va simplement fusionner les tables sur les clés primaires et étrangères.
Le nom de cette jointure est INNER JOIN

Pour tout savoir sur la jonction INNER JOIN : https://sql.sh/cours/jointures/inner-join

Si vous souhaitez découvrir tous les types de jonctions et leurs fonctionnement voici un lien qui explique tout.
Pour tout savoir sur l'ensemble des jonctions de tables : https://sql.sh/cours/jointures