PHP boucle while 10 fois

bomber48 -  
 1234 -
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. clintm Messages postés 718 Statut Membre 75
     
    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";
     }
    0
  2. bomber48
     
    Mais comment intégrer cela? dans mon code source?
    0
  3. Dr Zoidberg Messages postés 547 Statut Membre 100
     
    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"; 
    0
    1. 1234
       
      ce serait plutôt ORDER BY id DESC LIMIT 0,10
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. clintm Messages postés 718 Statut Membre 75
     
    je suis désolé j'avais pas penser à ça, alors que je l'utilise tous le temps pour trier des tableaux

    merci doc
    0
  6. bomber48
     
    Bonjour,

    Je voudrais savoir si c'est normal que quand je met une "LIMIT 3" cela me selectione seulement 2 valeurs.
    0
  7. croy Messages postés 457 Statut Membre 114
     
    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.
    0
  8. bomber48
     
    $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
    0
  9. croy Messages postés 457 Statut Membre 114
     
    place après mysql_query :
    echo '<br>' . mysql_num_rows( $result );
    

    Qu'est-ce qui est affiché ?
    0
  10. bomber48
     
    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...
    0
  11. croy Messages postés 457 Statut Membre 114
     
    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";
    		}
    	}
    
    0