Affichage des données
Dans cette partie du tutorielle, nous allons voir comment afficher les données de notre table "COMMENTAIRES". Pour ce faire, nous allons utiliser plusieurs fonctions indispensables et notamment la fameuse boucle while()
. Pour bien comprendre, je vais "disséquer" les étapes une par une et expliquer au mieux celles-ci.
Allé, c'est partie.
On reprend notre fichier "commentaire.php" et cette fois-ci nous allons écrire notre code en dessous de notre formulaire. Comme d'habitude, on ouvre une connection avec la base de données puis on sélectionne toutes les entrées (SELECT *).
<?php // on se connecte à la base de données mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base
de donnée. Assurez vous d\'avoir correctement remplit les données de
connections.'); //On sélectionne tout dans la table COMMENTAIRES par "id" croissant $result = mysql_query("SELECT * FROM COMMENTAIRES ORDER BY id ASC"); //On vérifie que la table contient quelque chose if(mysql_num_rows($result) == 0) { echo '<p>Aucun commentaire!</p>'; } //Si il y a des entrées else { //Ici le reste du code //on ferme le else } // Fermeture de la connexion à la base de données mysql_close(); ?>
Le premier "soucis" que l'on va rencontrer sur l'affichage des commentaires, c'est comment afficher un texte si notre table est complètement vide. Nous voullons donc un code qui dit : "Si il n'y a aucune entrée (donc 0), on affiche notre texte.".
Dans un premier temps, on utilise une simple condition PHP soit if() .
En second, on utilise la fonction mysql_num_rows() qui permet de retourner le nombre de lignes d'un résultat MySQL. En gros, cette fonction va compter le nombre d'entrée.
Après, c'est de la logique :
On veut compter quoi? -> le nombre de ligne, soit : if(mysql_num_rows())
Le nombre de ligne de quoi? -> de la variable $result, soit : if(mysql_num_rows($result))
Pour faire quoi? -> pour afficher un texte si n'y a rien, soit : if(mysql_num_rows($result) == 0)
Boucle while() et mysql_fetch_array()
La boucle while() permet de répéter une suite d'instructions tant qu'une condition est vraie.
while signifie en gros («tant que») et prend généralement la forme suivante :
while (condition) { instruction(s); }
La fonction mysql_fetch_array() permet de retourner une ligne de résultat MySQL sous la forme d'un tableau.
Ici, nous voullons dans notre condition retourner les résultats de notre variable $result qui contient toutes les entrées de notre table "COMMENTAIRES".
Ce qui nous donne donc:
while (mysql_fetch_array($result)) { instruction(s); }
Pour terminer notre condition, nous allons tout simplement lui attribuer une variable. Dans cette exemple, je nomme ma variable $affiche_commentaire et c'est cette variable qui va nous servir d'instruction(s), donc, qui va nous permettre d'afficher nos résultats
.
while ($affiche_commentaire = mysql_fetch_array($result)) { instruction(s); }Notre code :
<?php // on se connecte à la base de données mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base
de donnée. Assurez vous d\'avoir correctement remplit les données de
connections.'); //On sélectionne tout dans la table COMMENTAIRES par "id" croissant $result = mysql_query("SELECT * FROM COMMENTAIRES ORDER BY id ASC"); //On vérifie que la table contient quelque chose if(mysql_num_rows($result) == 0) { echo '<p>Aucun commentaire!</p>'; } //Si il y a des entrées else { //On fait une boucle pour sortir toutes les entrées while($affiche_commentaire = mysql_fetch_array($result)) { //Ici les instructions //On ferme la boucle while } //on ferme le else } // Fermeture de la connexion à la base de données mysql_close(); ?>
Les instructions de la boucle while()
Maintenant que notre boucle est "préparé", on va lui demandé d'affiché nos instructions.
Quelles sont les instructions?
- Afficher les numéros id.
- Afficher les pseudos.
- Afficher les commentaires.
Quand aux adresses email, on les gardent pour nous, sinon ça va raller ^^.
Et comment on fait ?
C'est très simple, on utilise notre variable $affiche_commentaire suivit du nom du champ à afficher entre crochet et le tout concaténé. En PHP, la concaténation d'une chaîne s'effectue grâce au point, c'est pour celà que chaque instruction est précédé de '. et se termine par .' .
'.$affiche_commentaire["id"].' '.$affiche_commentaire["pseudo"].' '.$affiche_commentaire["commentaire"].'
Et pour afficher le tout, on utilise un simple "echo".
<?php // on se connecte à la base de données mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base
de donnée. Assurez vous d\'avoir correctement remplit les données de
connections.'); //On sélectionne tout dans la table COMMENTAIRES par "id" croissant $result = mysql_query("SELECT * FROM COMMENTAIRES ORDER BY id ASC"); //On vérifie que la table contient quelque chose if(mysql_num_rows($result) == 0) { echo '<p>Aucun commentaire!</p>'; } //Si il y a des entrées else { //On fait une boucle pour sortir toutes les entrées while($affiche_commentaire = mysql_fetch_array($result)) { //On affiche les entrées echo '<p>'.$affiche_commentaire["id"].'-Commentaire de '.$affiche_commentaire["pseudo"]
.' :<br/>'; echo ''.nl2br($affiche_commentaire["commentaire"]).'</p>'; //On ferme la boucle while } //on ferme le else } // Fermeture de la connexion à la base de données mysql_close(); ?>
nl2br()
Vous avez sans doute remarquer l'utilisation de cette fonction lors de l'affichage des commentaires dans notre code
...
'.nl2br($affiche_commentaire["commentaire"]).'
nl2br() permet tout simplement de convertir en balise XHTML les retours à la ligne d'une chaine. En gros, cette fonction agit comme la balise <br/>. Si vous avez du mal à comprendre son utilitée, amusez-vous à enregister un commentaire avec plein de retour à la ligne via votre formulaire. Ensuite vous allez sous PhpMyAdmin pour voir comment votre commentaire a été enregistré et vous constaterez que malgré vos retour à la ligne acharné, que aucune balise <br/> n'est présente ... d'ou son utilitée
.
Voilou, ce tuto. prend fin. et vous savez maintenant comment afficher des données enregistrées en base de données.


Signaler une erreur
Vérifications et enregistrements des données
Initiation aux requêtes SQL avec PHP
Création de l'administration



