Article

Résolu
Bonsoir !

Alors voilà, j'ai une page ou j'affiche le contenu d'une de mes tables :

<?php
     try
     {
          $bdd = new PDO('mysql:host=localhost;dbname=MaBDD', 'MonUSer', 'MonMDP');
     }
								
     catch(Exception $e)
     {
          die('Erreur : '.$e->getMessage());
     }
								
     $reponse = $bdd->query('SELECT * FROM mods WHERE version=\'1.8\' AND categorie=\'cheat\'');
								
     while ($donnees = $reponse->fetch())
     {
								
?>
						
<!-- [DEBUT] Mod -->
     <div class="4u">
          <section class="highlight">
               <a href="#" class="image featured"><img src="<?php echo $donnees['image']; ?>" alt="<?php echo $donnees['nom']; ?>" /></a>
                    <h3><a href="#"><?php echo $donnees['nom']; ?></h3>
                         <ul class="actions">
                              <li><a href="#" class="button style1">En savoir plus</a></li>
                         </ul>
          </section>
     </div>
<!-- [FIN] Mod -->

<?php

     }

     $reponse->closeCursor();

?>


Jusque là tout va bien tout marche.

Maintenant je voudrais quand quand je clique sur le bouton :

<ul class="actions">
     <li><a href="#" class="button style1">En savoir plus</a></li>
</ul>


sa me redirige vers une page ou l'article s'affiche.

Et là je ne sais comment faire :/ Je ne vais tout de même pas créer une page pour chaque entrées de ma table ? T_T

Merci d'avance

Lamastiko

--
« Mieux vaut mourir debout que de vivre à genoux »
Si vous avez votre réponse merci de mettre votre post en [Résolu] !

4 réponses

  1. Bonsoir,

    Vous pouvez créer une page (voirarticle.php, par exemple) à laquelle vous envoyez par l'url l'id de l'article. Je m'explique. Dans votre while vous modifier la déclaration de l'élément li en :

    <ul class="actions">
        <li><a href="voirarticle.php?a=<?php echo $donnees['id']; ?>" class="button style1">En savoir plus</a></li> // cela permet de transmettre à la page voirarticle l'id de l'article que l'on veut lire ; NB: j'ai mis "a" pour article mais vous pouvez mettre ce que vous voulez
    </ul>


    Ensuite, sur voirarticle.php on récupère l'id reçue :

    <$id=htmlspecialchars($_GET['a']) // htmlspecialchars convertit les caractères spéciaux en entités HTML ;; $_GET('a'] retourne l'id passé dans l'url


    Il ne reste plus qu'à récupérer l'article dans votre base de données avec un
    WHERE id='$id'
    et à l'afficher dans votre page !

    Espérant avoir été clair et vous avoir aidé,

    Amicalement,

    hharchi9
    1. Merci de votre réponse !

      Mon problème est presque résolu.

      Alors j'ai suivi vos instructions j'ais mis :

      <ul class="actions">
          <li><a href="voirarticle.php?a=<?php echo $donnees['id']; ?>" class="button style1">En savoir plus</a></li>
      </ul>
      


      Jusque là tout va bien, l'ID s'affiche dans l'URL c'est perfect.

      Après le problème c'est à l'affichage de l'article :/

      Moi j'ai mit ce code :

      <!-- [DEBUT] Section "Mod | 1.8 | Cheat | Article" -->
      <?php
      								
           try
           {
                $bdd = new PDO('mysql:host=localhost;dbname=lcm_mqcb', 'lcm_mqcb', 'LeCoinMinecraft');
           }
      								
           catch(Exception $e)
           {
                die('Erreur : '.$e->getMessage());
           }
      				
           $id = htmlspecialchars($_GET['a']);
      								
           $reponse = $bdd->query('SELECT * FROM mods WHERE id=\'.$id\'');
      								
           while ($donnees = $reponse->fetch())
           {
      								
      ?>
      			
           <div id="intro-wrapper" class="wrapper style1">
                <div class="title">Mod | 1.8 | Cheat | <?php echo $donnees['nom']; ?></div>
                     <section id="intro" class="container">
                          <p class="style1">
                               <?php echo $donnees['nom']; ?>
                               <?php echo $donnees['auteur']; ?>
                          </p>
                          <p class="style2">
                               <img src="<?php echo $donnees['image']; ?>"/>
                          </p>
      			        
                          <h1>Présentation</h1>
                               <p class="style3">
                                    <?php echo $donnees['description']; ?>
                               </p>
      				    
                          <h1>Tutoriel</h1>
                               <p class="style3">
                                    <?php echo $donnees['tuto']; ?>
                               </p>
      				    
                          <h1>Liens</h1>
                               <p class="style3">
                                    <?php echo $donnees['liens']; ?>
                               </p>
                     </section>
           </div>
      			
      <?php
      							
           }
      								
           $reponse->closeCursor();
      								
      ?>
      <!-- [FIN] Section "Mod | 1.8 | Cheat | Article" -->
      


      Je pense que j'ai fait une erreur grosse comme ça mais vu que je suis encore débutant je ne sais pas où.

      Encore merci pour votre aide :)
      1. Modérateur
        Bonjour,

        Essayes ceci :
        <!-- [DEBUT] Section "Mod | 1.8 | Cheat | Article" -->
        <?php
        //------------------------------------------------------------------------        
        // Cette partie devrait plutôt être placée dans un fichier à part
        //dont tu ferais juste l' INCLUDE  
           try
             {
                  $bdd = new PDO('mysql:host=localhost;dbname=lcm_mqcb', 'lcm_mqcb', 'LeCoinMinecraft');
             }
                
             catch(Exception $e)
             {
                  die('Erreur : '.$e->getMessage());
             }
        //------------------------------------------------------------------------
            
             $id = isset($_GET['a'])?htmlspecialchars($_GET['a']):NULL;
             if($id){       
               $sql="SELECT * FROM mods WHERE id='$id' ";
               $reponse = $bdd->query($sql);
        
             while ($donnees = $reponse->fetch()) {
                
        ?>
           
             <div id="intro-wrapper" class="wrapper style1">
                  <div class="title">Mod | 1.8 | Cheat | <?php echo $donnees['nom']; ?></div>
                       <section id="intro" class="container">
                            <p class="style1">
                                 <?php echo $donnees['nom']; ?>
                                 <?php echo $donnees['auteur']; ?>
                            </p>
                            <p class="style2">
                                 <img src="<?php echo $donnees['image']; ?>"/>
                            </p>
                   
                            <h1>Présentation</h1>
                                 <p class="style3">
                                      <?php echo $donnees['description']; ?>
                                 </p>
                
                            <h1>Tutoriel</h1>
                                 <p class="style3">
                                      <?php echo $donnees['tuto']; ?>
                                 </p>
                
                            <h1>Liens</h1>
                                 <p class="style3">
                                      <?php echo $donnees['liens']; ?>
                                 </p>
                       </section>
             </div>
           
        <?php
               
             }// fin du While
          $reponse->closeCursor();  
        }// fin du IF
                
        ?>
        <!-- [FIN] Section "Mod | 1.8 | Cheat | Article" -->
              
        


        Cordialement,
        Jordane
        1. Ho merci beaucoup mon problème et résolu :D
          1. Bonne continuation !