Comment limiter affichier les commentaires d'un blog

Comment limiter affichier les commentaires d'un blog - SQL/NoSQL - Programmation

Marsh Posté le 23-10-2012 à 15:23:19    

Bonjour à tous,
 
J'ai un petit blog tout simple.
Pour un billet, il y a possibilité de créer un commentaire.
 
J'arrive bien à afficher les différents billets, mais pas à afficher les commentaires correspondants.
En effet, ils s'affichent toujours tous sans correspondre pas au billet correspondant.
 
Voilà ce que je voudrais:
Sujet 1  
     Commentaire 1
     Commentaire 2
Sujet 2
     (pas de commentaire posté)
Sujet 3
     Commentaire 3
     Commentaire 4
...
 
Voilà ce que j'ai avec le code ci-dessous:
Sujet 1  
     Commentaire 1
     Commentaire 2
     Commentaire 3
     Commentaire 4
Sujet 2  
     Commentaire 1
     Commentaire 2
     Commentaire 3
     Commentaire 4
Sujet 3  
     Commentaire 1
     Commentaire 2
     Commentaire 3
     Commentaire 4
...
 
Voilà ce que j'ai écrit jusque là:

Code :
  1. <?php
  2. // On récupère les 5 derniers billets
  3. $sql = 'SELECT id_billet, titre, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM billets ORDER BY date_creation DESC LIMIT 0, 5';
  4. $requete = mysql_query( $sql, $base ) or die( 'ERREUR MYSQL numéro: '.mysql_errno().'<br>Type de cette erreur: '.mysql_error().'<br>\n' );
  5. while ($donnees = mysql_fetch_array($requete)) 
  6. {
  7. ?>
  8. <div class="news">
  9.     <h3>
  10.         <?php echo htmlspecialchars($donnees['titre']); ?>
  11.         <em>le <?php echo $donnees['date_creation_fr']; ?></em>
  12.     </h3>
  13.    
  14.     <p>
  15.     <?php
  16.     // On affiche le contenu du billet
  17.     echo nl2br(htmlspecialchars($donnees['contenu']));
  18.     ?>
  19.     <br />
  20.     <em><a href="commentaires.php?billet=<?php echo $donnees['id_billet']; ?>">Commentaires</a></em>
  21.     </p>
  22. </div>
  23.  <?php       
  24.         // Récupération des commentaires
  25.         $sql2 = "SELECT auteur, commentaire, DATE_FORMAT(date_commentaire, '%d/%m/%Y à %Hh%imin%ss') AS date_commentaire_fr FROM billets, commentaires WHERE billet = id_billet ORDER BY date_commentaire";
  26.         $requete2 = mysql_query( $sql2, $base ) or die( 'ERREUR MYSQL numéro: '.mysql_errno().'<br>Type de cette erreur: '.mysql_error().'<br>\n' );
  27.        
  28.         while ($donnees2 = mysql_fetch_array($requete2)) 
  29.         {
  30.         ?>
  31.         <p><strong><?php echo htmlspecialchars($donnees2['auteur']); ?></strong> le <?php echo $donnees2['date_commentaire_fr']; ?></p>
  32.         <p><?php echo nl2br(htmlspecialchars($donnees2['commentaire'])); ?></p>
  33.         <?php
  34.         } // Fin de la boucle des commentaires
  35.         ?>
  36. <?php
  37. } // Fin de la boucle des billets
  38. ?>


 
Je pensais à un Goup by id_billets, mais ce n'est pas ça.
 
Merci d'avance pour votre aide!!

Reply

Marsh Posté le 23-10-2012 à 15:23:19   

Reply

Marsh Posté le 23-10-2012 à 16:03:15    

dans ton sql2, faut rajouter dans le where :
"...AND id_billet = ".$donnees['id_billet']." ORDER BY..."
 
ps : ton code php est bien moche :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed