Partage
  • Partager sur Facebook
  • Partager sur Twitter

While

    9 mai 2007 à 21:09:12

    Bonsoir

    J'ai une boucle dans une autre qui retourne des données, mes affiche pas toutes les donnée que je souhaites...

    Le code ci dessus est entre une autre boucle qui récupère des billets d'un blog, mais quand je veux afficher les tags, il en affiche qu'un seul alors qu'il y en a plusieur...

            $sqltag = 'SELECT * FROM '.$gloups['prefix'].'_tags WHERE cat_id LIKE "'.$id_tag.'" ORDER BY tag';
            $reqtag = mysql_query($sqltag);
           
            while ($donnees = mysql_fetch_array($reqtag))
            {       
                    $tag = '<li><a href="index.php?file=Tags&op=select&tag='.$donnees['tag'].'">'.$donnees['tag'].'</a></li>';
            }


    Voilà je voulais savoir comment faire pour qu'il ne retourne pas qu'un seul tag ?


    Merci ;)
    • Partager sur Facebook
    • Partager sur Twitter
      9 mai 2007 à 21:16:21

      Enlèves la variable!

      $sqltag = 'SELECT * FROM '.$gloups['prefix'].'_tags WHERE cat_id LIKE "'.$id_tag.'" ORDER BY tag';
              $reqtag = mysql_query($sqltag);
             
              while ($donnees = mysql_fetch_array($reqtag))
              {       
                      echo '<li><a href="index.php?file=Tags&op=select&tag='.$donnees['tag'].'">'.$donnees['tag'].'</a></li>';
              }
      • Partager sur Facebook
      • Partager sur Twitter
        9 mai 2007 à 21:21:39

        La variable est reprise en dessous...

                echo '<p class="billet-date">'.$numero.' '.$month.' '.$annee.'</p>'
                        .'<h2 id="'.$id.'" class="billet-titre">'.$titre.'</h2>'
                        .'<p class="billet-info">Par '.$auteur.', '.$date.' à '.$heure.' </p>'
                        .'<ul class="billet-tags">'.$tag.'</ul>'
                        .''.$contenu.'<br />';


        • Partager sur Facebook
        • Partager sur Twitter
          9 mai 2007 à 21:23:30

          $sqltag = 'SELECT * FROM '.$gloups['prefix'].'_tags WHERE cat_id LIKE "'.$id_tag.'" ORDER BY tag';
          $reqtag = mysql_query($sqltag);

          while ($donnees = mysql_fetch_assoc($reqtag))
          {
          $tag .= '<li><a href="index.php?file=Tags&op=select&tag='.$donnees['tag'].'">'.$donnees['tag'].'</a></li>';
          }
          • Partager sur Facebook
          • Partager sur Twitter
            9 mai 2007 à 21:40:11

            Mon code en entier :
                    $sql = 'SELECT * FROM '.$gloups['prefix'].'_billets ORDER BY id DESC';
                    $req = mysql_query($sql) or die(mysql_error());

                    while ($donnees = mysql_fetch_array($req))
                    {
                   
                    $id = $donnees['id'];
                    $auteur = $donnees['auteur'];
                    $titre = $donnees['titre'];
                    $contenu = nl2br($donnees['contenu']);
                    $id_tag = $donnees['id_tag'];

                    $numero = date('d', $donnees['date']);
                    $mois = date('F', $donnees['date']);
                    $annee = date('Y', $donnees['date']);

                    $heure = date('H\hi', $donnees['date']);

                    $month = array("January" => "janvier", "February" => "février", "March" => "mars", "April" => "avril", "May" => "mai", "June" => "juin", "July" => "juillet", "August" => "août", "September" => "septembre", "October" => "octobre", "November" => "novembre", "December" => "décembre");
                    $month = strtr($mois, $month);
                    $month = substr($month, 0, 3);

                    $sqltag = 'SELECT * FROM '.$gloups['prefix'].'_tags WHERE cat_id LIKE "'.$id_tag.'" ORDER BY tag';
                    $reqtag = mysql_query($sqltag);
                   
                    while ($donnees = mysql_fetch_assoc($reqtag))
                    {       
                            $tag .= '<li><a href="index.php?file=Tags&op=select&tag='.$donnees['tag'].'">'.$donnees['tag'].'</a></li>';
                    }
                    echo '<p class="billet-date">'.$numero.' '.$month.' '.$annee.'</p>'
                            .'<h2 id="'.$id.'" class="billet-titre">'.$titre.'</h2>'
                            .'<p class="billet-info">Par '.$auteur.', '.$date.' à '.$heure.' </p>'
                            .'<ul class="billet-tags">'.$tag.'</ul>'
                            .''.$contenu.'<br />';
                    }


            Le code que tu m'as donnée xboxman, marche presque...

            Mon premier billet, il m'affiche les tags liée à ce billet
            Le second, il m'affiche les tags du premier + les tags de ce billet
            Le troisième, il m'affiche les tags du premier et deuxième + les tags de ce billet
            Ainsi de suite...

            Comment y remédier ? :euh:

            Merci :)
            • Partager sur Facebook
            • Partager sur Twitter
              9 mai 2007 à 21:45:14

              C'est normal.

              Car tu additionnes des variables.

              Tu peux toujours compter le # de champs a afficher, les mettre dans une boucle FOR et de créer tes variables. Ensuite, pour afficher,tu fais la meme boucle for avec le nom de ta variable.
              • Partager sur Facebook
              • Partager sur Twitter
                9 mai 2007 à 21:56:49

                Un petit exemple, a vrai dire j'ai du mal à te suivre... :(
                • Partager sur Facebook
                • Partager sur Twitter
                  9 mai 2007 à 22:08:17

                  <?
                  for($i=1; $i<=mysql_num_rows($reqtag); $i++){
                  while ($donnees = mysql_fetch_assoc($reqtag))
                          {       
                                  $tag[$i] = '<li><a href="index.php?file=Tags&op=select&tag='.$donnees['tag'].'">'.$donnees['tag'].'</a></li>';
                          }
                                 
                          echo '<p class="billet-date">'.$numero.' '.$month.' '.$annee.'</p>'
                                  .'<h2 id="'.$id.'" class="billet-titre">'.$titre.'</h2>'
                                  .'<p class="billet-info">Par '.$auteur.', '.$date.' à '.$heure.' </p>'
                                  .'<ul class="billet-tags">'.$tag[$i].'</ul>'
                                  .''.$contenu.'<br />';
                          }
                                  }
                  ?>
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 mai 2007 à 22:53:39

                    Cela ne fonctionne par encore...

                    Il affiche le premier billet avec le premier tag, ensuite il remet le premier billet en dessous mais sans tag...

                    Au début, j'avais essayé ceci :
                            while ($donnees = mysql_fetch_assoc($reqtag))
                            {       
                                    $tag = '<li><a href="index.php?file=Tags&op=select&tag='.$donnees['tag'].'">'.$donnees['tag'].'</a></li>';
                            echo '<p class="billet-date">'.$numero.' '.$month.' '.$annee.'</p>'
                                    .'<h2 id="'.$id.'" class="billet-titre">'.$titre.'</h2>'
                                    .'<p class="billet-info">Par '.$auteur.', '.$date.' à '.$heure.' </p>'
                                    .'<ul class="billet-tags">'.$tag.'</ul>'
                                    .''.$contenu.'<br />';
                            }// Fin de la While


                    Là par contre il affichait le premier billet avec le premier tag, et ensuite il remettait le premier billet mais avant le second tag...

                    :euh: Compliqué mon histoire...
                    • Partager sur Facebook
                    • Partager sur Twitter

                    While

                    × 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