[PHP] Utiliser 2 requêtes SQL dans 1 boucle ?

Utiliser 2 requêtes SQL dans 1 boucle ? [PHP] - PHP - Programmation

Marsh Posté le 29-04-2011 à 09:22:43    

Bonjour les pro!
 
J'aimerais faire un blog avec des commentaires. J'ai donc 2 bases de données : billets et commentaires.
 
Voila ma boucle qui affiche tout les billets d'un même auteur sur sa page :

Code :
  1. <?php
  2. $reponse = $bdd->query('SELECT id,login,titre,contenu,DATE_FORMAT(date_creation,\'Le %d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM billets ORDER BY id  DESC LIMIT '.$id.',20');
  3. while($donnees = $reponse->fetch())
  4. {
  5. if ($donnees['login'] == $_SESSION['login']) {
  6.  echo "<table id='tableaunews'><tr><td class='celltitre'>";
  7.  echo ($donnees['titre']);
  8.  echo "</td><td class='date'><em>";
  9.  echo ($donnees['date_creation_fr']);
  10.  echo "</em></td></tr><tr><td class='celldonnees'>";
  11.  echo ($donnees['contenu']);?><br/>
  12.  <a href = "commentaires.php?billet_1=<?php echo ($donnees['id']);?>"><em>Commentaires</em></a><br/><br/>
  13.  <td></tr></table>
  14.  <?php
  15. $numbillet = $donnees['id']
  16. }
  17. }
  18. $reponse->closeCursor();?>


Et voila la boucle qui affiche tout les commentaires pour un billet donné :

Code :
  1. <?php
  2. $req = $bdd->prepare('SELECT id,auteur,commentaire,DATE_FORMAT(date_commentaire,\'Le %d/%m/%Y à %Hh%imin%ss\') AS date_commentaire_fr FROM commentaires ORDER BY id') or die(print_r($bdd->errorInfo()));
  3. while($donnees = $req->fetch())
  4. {
  5. if ($donnees['id'] == $numbillet){
  6. echo ($donnees['auteur']).$donnees['date_commentaire_fr'].'<br/>'.($donnees['commentaire']).'<br/>';
  7. }
  8. }
  9. $req->closeCursor();
  10. ?>


Je dois donc insérer cette boucle dans la première (les billets) mais il y aura donc 2 requêtes sql en même temps... Comment contourner le problème ?
 
Désolé si le code est très mauvais je débute :s !
 
Merci de votre attention :)

Reply

Marsh Posté le 29-04-2011 à 09:22:43   

Reply

Marsh Posté le 29-04-2011 à 13:58:35    

C'est faisable. Il suffit d'utiliser des noms différents pour les variables PHP.
Là, les noms sont déjà différents pour $reponse et $req. Par contre les noms sont identiques pour $donnees qu'il faudrait dédoubler en ayant, par exemple $donnees1, et $donnees2.


Message édité par olivthill le 29-04-2011 à 14:00:04
Reply

Marsh Posté le 29-04-2011 à 14:13:30    

Oui je croyais que l'on devais forcement terminer une requête avec closecursor() avant d'en envoyer une autre :s
 
Donc c'est tout bon merci à toi :)

Reply

Sujets relatifs:

Leave a Replay

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