PHP boucle while 10 fois

Bonjour,
Voici le code source :
$query = "SELECT id FROM pmv_voitures ORDER BY id";
$result = mysql_query($query);

if (!mysql_fetch_row($result)) {
echo "Aucun véhicule n'est présent dans la base !";
}

else {
while($row = mysql_fetch_row($result))

{
$id = $row[0];

echo "$id";
}

}

Je souhaiterai que la boucle "while" fonctionne 10 fois seulement, et cela malgré si il y a plus d'information dans la base de donnée. Comment je peux faire cela?
Configuration: Windows XP
Internet Explorer 7.0

12 réponses

  1. salut,

    il suffit d'incrémenter de 1 à chaque fois que la boucle fais un cycle, est de bloquer si la variable est égale à 10
    éxemple (avec for, car plus simple) :
    $i = 0;
    for($i=0; $i<=5; $i++)
     {
     if($i == 10)
      {
      return false();
      }
     $i = $i + 1;
     print "salut $i";
     }
    1. Salut,

      Pourquoi ne pas limiter directement le nombre de lignes de la requête SQL ?
      $query = "SELECT id FROM pmv_voitures ORDER BY id LIMIT 10"; 
      1. ce serait plutôt ORDER BY id DESC LIMIT 0,10
    2. je suis désolé j'avais pas penser à ça, alors que je l'utilise tous le temps pour trier des tableaux

      merci doc
      1. Bonjour,

        Je voudrais savoir si c'est normal que quand je met une "LIMIT 3" cela me selectione seulement 2 valeurs.
        1. Si avec un LIMIT 3 tu ne reçois que 2 enregistrements c'est que tu as un WHERE qui ne retourne que 2 enregistrements.
          1. $query = "SELECT id,titre FROM pmv_voitures ORDER BY id DESC LIMIT 3";
            $result = mysql_query($query);

            Voilà, je n'ai donc pas de WHERE
            1. place après mysql_query :
              echo '<br>' . mysql_num_rows( $result );
              

              Qu'est-ce qui est affiché ?
              1. mysql_connect($host,$user,$passwd)or die("<span class=\"texte\">Erreur de connexion au serveur !</span> \n");
                mysql_select_db($bdd) or die("<span class=\"texte\">Erreur de connexion a la base de donnees !</span> \n");

                $query = "SELECT id,titre FROM pmv_voitures ORDER BY id DESC LIMIT 3";
                $result = mysql_query($query);

                if (!mysql_fetch_row($result)) {
                echo "<tr><td bordercolor=\"#CCCCCC\">Aucun véhicule n'est présent dans la base !</td></tr> \n";
                }
                else {
                while($row = mysql_fetch_row($result))

                {
                $id = $row[0];
                $titre = $row[1];

                echo "<tr><td bordercolor=\"#CCCCCC\"><a href=\"http://www.citroen-rudi.com/vehicules/index.php?id=$id\">$titre</a>

                </td></tr> \n";
                }
                }


                Cela ne marche pas :( Voici le code que j'utilise. Par exemple si je rentre deux donnée la premier s'affiche, et si j'en rentre 3 les deux premiéres s'affichent...
                1. Le premier appel de mysql_fetch_row pour tester si il y a au moins une réponse provoque la perte du premier enregistrement 'sil y en a un.

                  Voici le code que je te propose :
                  mysql_connect($host,$user,$passwd)or die("<span class=\"texte\">Erreur de connexion au serveur !</span> \n");
                  mysql_select_db($bdd) or die("<span class=\"texte\">Erreur de connexion a la base de donnees !</span> \n");
                  
                  $query = "SELECT id,titre FROM pmv_voitures ORDER BY id DESC LIMIT 3";
                  $result = mysql_query($query);
                  
                  $nbrRows = mysql_num_rows( $result );
                  
                  if( $nbrRows == 0 )
                  	echo "<tr><td bordercolor=\"#CCCCCC\">Aucun véhicule n'est présent dans la base !</td></tr> \n";
                  else
                  	{
                  	while( $row = mysql_fetch_row( $result ) )
                  		{
                  		$id = $row[0];
                  		$titre = $row[1];
                  		
                  		echo "<tr><td bordercolor=\"#CCCCCC\"><a href=\"http://www.citroen-rudi.com/vehicules/index.php?id=$id\">$titre</a&­gt;
                  		
                  		</td></tr> \n";
                  		}
                  	}