Problème de numerotation automatique PHP

Résolu
Djos -  
 Djos -
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 } ?>

1 réponse

  1. le père
     
    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
    1. Djos
       
      Merci beaucoup Le Père ca marche niquel
      0