Dans le dernier cours, nous avons vu comment sélectionner des données dans une base de données grâce à la commande SELECT. L'inconvénient du SELECT c'est qu'il sélectionne tous les champs de la base. On ne peut pas faire de tri par exemple.
Pour vous améliorer dans la création de table, vous pouvez importer la table suivante : table livre. A partir de ce moment, nous allons créer des requêtes avec cette table.
Comment faire pour afficher, par exemple, seulement les titres des livres dont l'auteur est Agatha Christie, il faut utiliser pour cela des critères de sélection comme WHERE, ORDER BY ou COUNT :
Le critère WHERE :
Grâce au critère WHERE, vous allez pouvoir trier vos données. Reprenons l'exemple précédent, et affichons les titres de livre dont l'auteur est Agatha Christie :
| SELECT * FROM livre WHERE Auteur='Agatha Christie'" |
Si on traduit en bon français cela signifie sélectionne moi les livres dont l'auteur est Agatha Christie. Essayez le code suivant pour voir ce que cela donne :
<?php $reponse = mysql_query ("SELECT * FROM livre WHERE Auteur='Agatha Christie' "); // Requête SQL <?php $reponse = mysql_query ("SELECT * FROM livre WHERE ORDER BY Titre DESC"); // Requête SQL
mysql_connect("localhost", "root", ""); // Connesion à la base de données
mysql_select_db("toto"); // Sélection de la base de données
while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données
{
?>
<p>
Titre : <?php echo $donnees['titre'];?> - <!-- Affichage des titres des livres-->
Prix : <?php echo $donnees['prix'];?> € <!-- Affichage du prix des livres -->
</p>
<?php
}
mysql_close(); // On oubli pas de déconnecter la base de données
?>
mysql_connect("localhost", "root", ""); // Connesion à la base de données
mysql_select_db("toto"); // Sélection de la base de données
while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données
{
?>
<p>
Titre : <?php echo $donnees['titre'];?> <!-- Affichage des titres des livres-->
</p>
<?php
}
mysql_close(); // On oubli pas de déconnecter la base de données
?>
Vous pouvez vous amuser à changer le nom de l'auteur si vous le souhaitez. Vous pouvez aussi mettre 2 conditions si vous le souhaitez. Par exemple, afficher tous les livres dont l'auteur est Agatha Christie et dont le prix est supérieur à 40 €. Vous devriez avoir une requête SQL de ce style :
SELECT * FROM livre WHERE Auteur='Agatha Christie' AND prix > 40"
Le critère ORDER BY :
Le critère ORDER BY permet de trier les résultats par ordre croissant ou décroissant. Dans l'exemple suivant, nous allons trier les livres par titre par ordre inverse alphabétique :
SELECT * FROM livre ORDER BY Titre DESC
Si vous voulez classer vos livre par ordre alphabétique, enlevez DESC. Vous pouvez ajouter le mot clé ASC à la place de DESC. Et voici le code qui va avec :
Compter le nombre d'entrées dans la table :
Pour différentes raisons, il peut être utile de compter le nombre d'enregistrement dans la table. Comme vous vous en doutez, nous allons compter avec le langage SQL. La commande que l'on va utiliser est COUNT.
<?php $reponse = mysql_query ("SELECT COUNT(*) FROM livre"); // Requête SQL
mysql_connect("localhost", "root", ""); // Connesion à la base de données
mysql_select_db("toto"); // Sélection de la base de données
$donnees = mysql_fetch_row($reponse);
echo $donnees[0]. " livres dans la base de données";
mysql_close(); // On oubli pas de déconnecter la base de données
?>
Ici, j'ai utilisé une nouvelle fonction nommée mysql_fetch_row et qui affiche le nombre de réponse transmise par la variable $reponse. Ensuite, on affiche le nombre d'enregistrement de la table grâce à la commande echo.
N'oubliez pas que vous pouvez rajouter des critères comme WHERE ou ORDER BY.