Problème de numerotation automatique PHP

Résolu/Fermé
Djos - 23 mars 2012 à 22:35
 Djos - 23 mars 2012 à 23:30
Bonjour,

J'ai un petit soucis que je n'arrive pas à résoudre depuis déjà 2 jours. J'aimerai faire une numérotation automatique PHP, j'arrive à le faire mais il y a un petit soucis j'ai limité le numero à 20 et il s'arrete pas à 20 mais par contre il m'affiche le numero 1à20 plusieurs fois. Normalement le script devrait affiche
1
2
3
4
...
20

Mais actuellement il m'affiche

1
2
..
20
1
2
..
20
1
2
..


le code PHP

<?php
$sql = 'SELECT * FROM parole ORDER BY dateupload DESC LIMIT 0,20';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$res = mysql_numrows($req);
// for ($i=0;$i<=$res; $i++){
while($data = mysql_fetch_array($req))
for ($i=0;$i<=$res; $i++)
{


?>
<div class="middle_area"><ul class="topparole">
<li><b><?php echo ($i+1); ?></b><label><a href=""><?php echo $data['titre'];?></a> <?php echo $data['artiste'];?></label></li></ul></div>
<?php } ?>
A voir également:

1 réponse

Bonjour

Ton 'for' est à l'intérieur du while. Il est donc répété autant de fois qu'il y a de lignes de résultats à ta requête.
si tu as 20 lignes de résultats, chaque for écrit donc les nombres de 1 à 20, mais tu recommences ce for 20 fois.
Tu as fait des boucles imbriquées, sans doute sans le savoir.
Tu n'as pas besoin du for
J'ai aussi l'impression que le <div> et le <ul> devraient être à l'extérieur de la boucle

<?php
$sql = 'SELECT * FROM parole ORDER BY dateupload DESC LIMIT 0,20';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$i=1;
<div class="middle_area"><ul class="topparole">
while($data = mysql_fetch_array($req)) {
?>
<li><b><?php echo ($i+1); ?></b><label><a href=""><?php echo $data['titre'];?></a> <?php echo $data['artiste'];?></label></li>
<?php
$i++;
} ?>
</ul></div>
1
Merci beaucoup Le Père ca marche niquel
0