Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupération de données sur une page

besoin d'aide

Sujet résolu
    13 décembre 2010 à 18:32:23

    Bonjour,

    je souhaite récupérer des données issues de deux tables différentes sur une même page. Sauf que mon code actuel récupère un unique billet avec ses commentaires. L'édification de ce code n'est qu'un entraînement. Toutefois, si quelqu'un pouvait m'aider à poursuivre ma quête du code qui fonctionne, ce serait vraiment génial ! :p

    Voici le code en question :
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
        <head>
            <title>Mon blog</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<link href="style_forum.css" rel="stylesheet" type="text/css" /> 
        </head>
    <body>
    <p style="font:bold 14px; color:red;">Le blog de Fred</p>
    <form action="billets.php" method="POST">
    <p>
        Titre<input type="text" name="titre" /><br /><br />
    	<textarea name="contenu" rows="8" cols="45">Tapez votre message ici.</textarea><br /><br />
        <input type="submit" value="Envoyer le message" />
    </p>
    </form>
    <?php
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    
    $reponse = $bdd->QUERY('SELECT 
    billets.id, 
    billets.titre, 
    billets.contenu, 
    DATE_FORMAT(billets.date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr  
    FROM billets  
    ORDER BY date_creation_fr DESC LIMIT 0, 5')  
    or die(print_r($bdd->errorInfo()));
    
    while ($donnees = $reponse->fetch())
    {
    
    ?>
    <div class="news">
     <h3>
            <?php echo htmlspecialchars($donnees['titre']); ?>
            <em>le <?php echo $donnees['date_creation_fr']; ?></em>
        </h3>
        <p>
        <?php
        echo nl2br(htmlspecialchars($donnees['contenu']));
        ?>
        <br />
        <em><a href="commentaires.php?id_billet=<?php echo $donnees['id']; ?>">Commentaires</a></em>
        </p>
    	
    	<?php 
    	$id_du_billet=$donnees['id'];
    $reponse = $bdd->QUERY("SELECT 
    commentaires.id, 
    commentaires.auteur, 
    commentaires.com, commentaires.id_billet 
    FROM commentaires 
    WHERE commentaires.id_billet = ' $id_du_billet '")  
    or die(print_r($bdd->errorInfo()));
    
    while($donnees2 = $reponse->fetch())
    {
    echo '<p><strong>' . htmlspecialchars($donnees2['auteur']) . ' </strong> : ' . htmlspecialchars($donnees2['com']) . ' </p>'; 
    }
     ?>
    	</div>
    <?php 
    }
    	
    $reponse->closeCursor();
    ?>	
    
    
    </body>
    </html>
    

    • Partager sur Facebook
    • Partager sur Twitter
      13 décembre 2010 à 18:48:02

      Je ne suis pas sûr que tu sois dans le bon forum.
      J'ai regardé ton code vite fait et pour la requête des commentaire ce n'est pas la peine de préfixer les champs par le nom de la table vu qu'il n'y en a qu'une, pour ton problème essaye d'abord ta requête dans ton gestionnaire de BD pour voir si le problème ne viendrait pas de là.
      • Partager sur Facebook
      • Partager sur Twitter
        13 décembre 2010 à 19:01:24

        Oui tu as raison concernant les champs mais c'est parce qu'au préalable j'avais tenté d'associer les tables ce qui s'est avéré inutile... bref! je vais continuer ma route sous d'autres latitudes ^^
        • Partager sur Facebook
        • Partager sur Twitter
          14 décembre 2010 à 8:18:19

          bonjour,

          WHERE commentaires.id_billet = '$id_du_billet'")
          enlève les espaces comme je les ai enlevés.

          Mais le mieux ne serait-il pas une jointure? Cela éviterait de requêter plusieurs fois ce qui est coûteux.
          • Partager sur Facebook
          • Partager sur Twitter

          Récupération de données sur une page

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown