Résultat d'une requete n'apparait pas

Résolu
Bonjour,

Pleasseeee, help me :-D

Je vous pose mon problème. Je souhaite faire afficher les résultats d'une rêquete à l'aide d'une boucle while que voici :

<?php

while ($row_campus = mysql_fetch_assoc ($campus))
{
$infos_unif = $row_campus ['unif'];
echo '<tr>';
echo '<td><a href="universite.php?unif='.$row_campus ['unif'].'"> '.$row_campus ['unif'].'</a></td>';
echo '</tr>';

}

?>

Seulement, voilà, le premier des résultats n'apparait pas. Quelqu'un sait m'aider ?

Merci d'avance

8 réponses

  1. Peut tu nous montrer le code a partir de la récupération des données de $campus?
    1
    1. Salut,

      Tu as un d'abords problème de guillemet..

      Remplace ton code par celui-ci :

      <?php
      
      while ($row_campus = mysql_fetch_assoc ($campus))
      {
         $infos_unif = $row_campus ['unif'];
         echo '<tr>';
         echo '<td><a href="universite.php?unif=' . $infos_unif . '">' . $infos_unif . '</a></td>';
         echo '</tr>';
      }
      
      ?> 
      


      Et redis-nous si ca va pas...
      1
      1. Alors, je viens d'essayer, et malheureusement, le résultat est le même :(
        0
    2. Merci pour ta réponse rapide :-)

      Je suis débutant alors, parfois je ne comprends pas tjs tout... :$

      C'est çà que tu demandes ? :

      mysql_select_db ($database_connexion, $connexion);
      $query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif ;
      $campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
      $row_campus = mysql_fetch_assoc ($campus);
      1
      1. Ce que je comprends vraiment pas, c'est que quand je fais

        $row_campus_num = mysql_num_rows ($campus);
        echo $row_campus_num;

        Il m'inscrit qu'il y a 4 résultats mais n'en affiche que 3 :s
        1
        1. C'est bien ce que je pensais:

          Si ton code ressemble a ça:

          mysql_select_db ($database_connexion, $connexion);
          $query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif ;
          $campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
          $row_campus = mysql_fetch_assoc ($campus);
          while ($row_campus = mysql_fetch_assoc ($campus))
          {
          $infos_unif = $row_campus ['unif'];
          echo '<tr>';
          echo '<td><a href="universite.php?unif='.$row_campus ['unif'].'"> '.$row_campus ['unif'].'</a></td>';
          echo '</tr>';

          }

          ?>

          tu as une ligne responsable de l'erreur et c'est celle juste avant le while: supprime la.

          Ton code devrait ressembler à ça:

          <?php
          mysql_select_db ($database_connexion, $connexion);
          $query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif";
          $campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
          while ($row_campus = mysql_fetch_assoc ($campus))
          {
             $infos_unif = $row_campus ['unif'];
             echo '<tr>';
             echo '<td><a href="universite.php?unif=' . $infos_unif . '">' . $infos_unif . '</a></td>';
             echo '</tr>';
          }
          ?> 
          1
          1. Pour t'aider a debugger seul a l'avenir je vais te donner quelques pistes.

            Deja, remplace ta requete par :

            $query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif";
            


            Il manquait un " a la fin, tu as tu l'enlever ici sinon PHP te jèterai une erreur..

            Ensuite, fait un :
            echo $query_campus;
            die();
            


            juste en dessous. Ca t'affichera la requete et s'arretera sur cette ligne. Copie-colle la requete et execute la sur phpMyAdmin si tu l'utilises..

            Si tu vois des resultats, enleve le l'echo et le die(); et continue..

            Ensuite juste apres :

            $campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ; 


            Rajoute

            echo "J'ai trouve : " . mysql_num_rows($campus) . "resultats";
            die();
            


            Execute et regarde combien il te dit.. Si tu trouves le meme nombre que dans phpMyAdmin c'est bon signe continue ..

            Ensuite enleve l'echo et le die() que tu viens de rajouter et

            Rajoute apres :

            $row_campus = mysql_fetch_assoc ($campus);


            Ceci :

            var_dump($row_campus);
            die();
            


            Ce qui t'affichera ce qu'il y a dans $row_campus..

            Et tiens nous au courant ;)
            0
            1. Merci pour les conseils ! :)

              Alors, je viens de faire tout ça.

              Lorsque que je copie colle la requête dans PHPMyAdmin, mes 4 résultats apparaissent et PHPMyAdmin encadre bien la colonne où pays est égal à Royaume-Uni (dans ce cas-ci)

              Par contre, avec le var_dump ($row_campus), bah il m'affiche les données qu'il y a dans la ligne qui ne s'affiche pas :-)
              0
          2. En fait,

            mysql_select_db ($database_connexion, $connexion);
            $query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif ;
            $campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
            $row_campus = mysql_fetch_assoc ($campus);

            est définit tout au dessus de ma page pcq j'ai besoin d'utiliser des echo $row_campus [''] sur toute ma page. Donc en fait, dans un tableau, j'ai écris ma boucle while comme mentionné ci dessus....
            0
            1. Ok alors dans ce cas tu peux faire tout simplement :

              <?php 
              mysql_select_db ($database_connexion, $connexion); 
              $query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif"; 
              $campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ; 
              $row_campus = mysql_fetch_assoc ($campus);
              
              // blabla ton code 
              
              
              while ($row_campus) 
              { 
                 $infos_unif = $row_campus ['unif']; 
                 echo '<tr>'; 
                 echo '<td><a href="universite.php?unif=' . $infos_unif . '">' . $infos_unif . '</a></td>'; 
                 echo '</tr>'; 
                 $row_campus = mysql_fetch_assoc ($campus); 
              } 
              ?>  
              
              
              0
              1. Sa marche aussi. Le truc c'est qu'il ne faut pas que tu fasse 2 fois
                $row_campus = mysql_fetch_assoc ($campus);
                
                avant d'entrer dans ta boucle, ou d'afficher $row_campus parceque sinon tu perd une ligne.
                0
              2. Exactement :)
                0
              3. OOOOOHHHHH Monnn Diieuuuu !!! :-D Mercii !!!!! Ca fonctionne, je garde en tête ce que je viens d'apprendre ! Par contre, comment ca se fait qu'on perd la ligne ? :$
                0
              4. tu perdait une ligne parce dans ton code:

                $campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ; 
                $row_campus = mysql_fetch_assoc ($campus); //recupere la premiere ligne 
                while ($row_campus = mysql_fetch_assoc ($campus))  //recupere la seconde ligne 
                { 
                //affiche la seconde ligne 
                }
                0
              5. Oooookkkk :-)

                Donc si je comprends bien, dans la boucle, on met le $row_campus mysql_fetch_assoc à la fin pour qu'il récupère les lignes qui suivent, c'est bien ça? C'est possible que ca permette aussi à la boucle de s'arreter ?
                0