Partage
  • Partager sur Facebook
  • Partager sur Twitter

mysql_fetch_array

--> Rien ne d'affiche :(

    4 juin 2006 à 22:26:45

    Salut,

    J'ai un petit soucis... Avec cette requete:

    <?
                  $sql="select * from smiley_cat where IDCAT2=$idcat2";
                              $res=mysql_query($sql);
                  while ($rec=mysql_fetch_array($res)) {
                              ?>
                                    <li><font size="2" face="Arial, Helvetica, sans-serif" align="left"><a class="autre" href="smiley.php?idcat=<? echo $rec["IDCAT"]; ?>"><? echo $rec["NOM"]; ?></a></font></li>
                    <? } ?>


    Rien ne s'ecrit, je devrait normalement obtenir une liste de noms mais je n'ai rien; ou est le probleme ?

    J'ai teste la variable idcat2; elle fonctionne nickel.

    Merci d'avance, gaet

    EDIT: Que pourrais-je ajouter dans la requete pour que les noms affichés soient classés par ordre alphabétique ?
    • Partager sur Facebook
    • Partager sur Twitter
      4 juin 2006 à 22:33:21

      Qu'affiche un : echo $sql; ?
      Et si tu utilise un mysql_error() sur ta requete ?
      Tu es sûr(e) que ta table contient des enregistrements ?
      • Partager sur Facebook
      • Partager sur Twitter
        4 juin 2006 à 22:33:48


        <?
        $sql='SELECT * FROM smiley_cat WHERE IDCAT2="'.$idcat2.'" ORDER by NOM';
        $res=mysql_query($sql) or die(mysql_error());
        while ($rec=mysql_fetch_array($res)) {
        ?>
                                        <li><font size="2" face="Arial, Helvetica, sans-serif" align="left"><a class="autre" href="smiley.php?idcat=<? echo $rec['IDCAT']; ?>"><? echo $rec['NOM']; ?></a></font></li>
                        <? } ?>


        Je ne te conseille pas trop de mettre les champs de ta table tout en majuscule.

        Pour trier NOM par ordre alphabétique mets ORDER by NOM comme je l'ai mis dans le code plus haut ;)
        • Partager sur Facebook
        • Partager sur Twitter
          4 juin 2006 à 22:42:08

          Salut;

          J'ai teste le "echo $sql;" et ca indique bien la requete.

          J'ai mis le mysql_error(), ca ne change rien et ca n'ecrit rien sur ma page.

          Pour les noms en majuscule, ca c'est parce que qql m'avait aidé en php/mysql il y a longtemps et j'ai gardé sa manière de faire; je changerai la prochaine fois.

          Merci pour le ORDER by NOM, ca fonctionne nickel.

          Mais, le probleme n'est pas résolu ^^ ca n'affiche toujours rien...

          ++
          • Partager sur Facebook
          • Partager sur Twitter
            5 juin 2006 à 1:22:40

            reposte nous ton code complet, et un bout de la table (fais un imprim ecran)
            • Partager sur Facebook
            • Partager sur Twitter
              5 juin 2006 à 8:40:38

              Citation : gaet666

              J'ai teste le "echo $sql;" et ca indique bien la requete.


              Encore heureux !
              C'est pas ça qu'on te demande !
              Faire un echo $sql c'est pour vérifir que les varaibles sont bien traitées et présentes dans ta requête.

              Bref, ton code :

              Citation : gaet666

              <?
                            $sql="select * from smiley_cat where IDCAT2=$idcat2";
                                        $res=mysql_query($sql);
                            while ($rec=mysql_fetch_array($res)) {
                                        ?>
                                              <li><font size="2" face="Arial, Helvetica, sans-serif" align="left"><a class="autre" href="smiley.php?idcat=<? echo $rec["IDCAT"]; ?>"><? echo $rec["NOM"]; ?></a></font></li>
                              <? } ?>

              Pas vraiment propre cette syntaxe ! :-°

              Comme ça c'est p'têt mieux :

              <?php
              $sql="select champ1,champ2,champ... from smiley_cat where IDCAT2='".$idcat2."'";
              $res=mysql_query($sql);
              while ($rec=mysql_fetch_assoc($res)) {
              echo '<li>
              <a class="autre" href="smiley.php?idcat='
              ,$rec['IDCAT'],'">',$rec['NOM'],'</a></li>';
              } ?>


              Pour rappel :
              - les balises php c'est <?php...?> et pas <?...?> :-°
              - on nomme sas champs, on ne fait pas un select * :-°
              • Partager sur Facebook
              • Partager sur Twitter
                5 juin 2006 à 9:22:54

                Vu le nom, je suppose que $idcat2 est un integer.
                Donc inutile de le protéger :

                $sql='SELECT champ1,champ2,champ... FROM smiley_cat WHERE IDCAT2='.(int)$idcat2;
                echo $sql;
                • Partager sur Facebook
                • Partager sur Twitter
                  5 juin 2006 à 9:25:39

                  Citation : Jukien

                  Vu le nom, je suppose que $idcat2 est un integer.
                  Donc inutile de le protéger :

                  $sql='SELECT champ1,champ2,champ... FROM smiley_cat WHERE IDCAT2='.(int)$idcat2;
                  echo $sql;

                  On n'est sûr de rien !
                  Il est préférable d'entourer une valeur avec des ' pour rien plutot que de faire un select * ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 juin 2006 à 9:30:06

                    Pour le *, on est entièrement d'accord.

                    Pour l'identifiant, on est cencé en être sûr : il est cencé avoir été vérifié avant, avec un ctype_digit() par exemple.


                    Edit : A moins que tu voulais dire "Oh tu sais, on ne peut pas être sûr que l'auteur de ce topic utilise des id de type integer... o_O Donc je préfère lui montrer une solution qui fonctionnera à tous les coups". Donc ce cas, oui, je soutiens ton point de vue :p
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 juin 2006 à 9:32:44

                      IDCAT2 peut très bien être de type string (léopard) :p
                      On n'en sais rien en fait du type de champ dans sa table. ;)

                      Arf un EDIT pendant que je postais ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 juin 2006 à 9:33:13

                        hihi, j'ai édité avant :p
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 juin 2006 à 9:34:46

                          C'est pas du jeu, je suis sur deux PC en même temps
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 juin 2006 à 9:37:40

                            Mouaf, c'est une excuse bidon ça :p
                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 juin 2006 à 9:42:12

                              Citation : Jukien

                              Mouaf, c'est une excuse bidon ça :p


                              Non, je bosse toujours sur deux PC. ;)
                              - 1 pour coder
                              - 1 autre pour tout ce qui est graphisme et matos d'imprimerie.

                              (Il y a 6 PC au total dans 2 bureaux) :p
                              Bientôt je vais apprendre à taper avec mes orteils. :p:lol:
                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 juin 2006 à 9:45:48

                                [ on va continuer en privé, sinon on va complètement pourrir le sujet :p ]
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 juin 2006 à 17:05:59

                                  n'a tu pas oublier de mettre ton fichier en "tonfichier.php" ( et non en html ) comme je l'ai fait :p:p
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  mysql_fetch_array

                                  × 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