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?
A voir également:

12 réponses

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
bomber48
 
Mais comment intégrer cela? dans mon code source?
0
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
1234
 
ce serait plutôt ORDER BY id DESC LIMIT 0,10
0
bomber48
 
merci baucoup :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
bomber48
 
Bonjour,

Je voudrais savoir si c'est normal que quand je met une "LIMIT 3" cela me selectione seulement 2 valeurs.
0
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
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
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
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
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
bomber48
 
Merci, parfait
0