while mais dans l'autre sens...

Eléphant du PHP | 124 Messages

26 avr. 2006, 17:57

salu a tous
j'aurais peut etre pu trouver par moi meme mais la je suis super pressé ça fait deux heures que je suis censé etre chez moi...

Ya t'il une fonction ou un attribut qui permet d'afficher les résultat de while () (en l'occurence un tableau fonction d'une base de données) en ordre décroissant???
merci :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 avr. 2006, 18:03

Surement en changeant l'ordre de tri de ta requete :roll:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 avr. 2006, 18:16

()elihw ? :lol:

bon ok, elle est nulle, je sors...

cela dit, il suffit de trier ta requête avant comme l'a suggéré zeus, ou récuperer tes données dans un tableau et le lire à l'envers, ou encore ne pas faire de echo, mais concatener les valeurs au début d'une chaine et afficher la chaine apres le while :)

Eléphant du PHP | 124 Messages

27 avr. 2006, 08:53

T'en fait pas Ryle ça nous arrive à tous..
P'tet que c'est moi qui comprend rien mais y me semble que c'est un peu plus compliqué que ça...

En fait j'ai un tableau de style:
<table>
$sql: blablablabla....
while ($row = mysql_fetch_array($resultSet))
{<tr>
<td><?php echo $row['champ1']?></td>
<td><?php echo $row['champ2']?></td>
<td><?php echo $row['champ3']?></td>
</tr>
 <?php } 
echo '</table>'; 
?>
Et tout ça fonctionne parfaitement.
Mais ce que je voudrai ce n'est pas changer l'ordre des cellules ,qui me convient parfaitement, mais faire en sorte que les lignes du tableau s'affiche de la derniere a la première...
Donc si je comprend bien y faudrait que ma base soit lue en partant de la fin en fait...

Santro
Invité n'ayant pas de compte PHPfrance

27 avr. 2006, 08:59

Bonjour,

Dans ta requete SQL essaye de mettre un ORDER by "champs_que_tu_veux_trier" ASC ou DESC. Ceci permettra de les trier suivant le champs

Eléphant du PHP | 451 Messages

27 avr. 2006, 09:12

Si l'ordre du tableau te convient il suffit de le copier cpmme te l'a suggéré Ryle dans un tableau tampon que tu lis ensuite à l'envers.
dans ce cas :
<table>
$sql: blablablabla....
while ($row = mysql_fetch_array($resultSet))
{<tr>
<td><?php echo $row['champ1']?></td>
<td><?php echo $row['champ2']?></td>
<td><?php echo $row['champ3']?></td>
</tr>
<?php }
echo '</table>';
?>
devient :
$sql: blablablabla....
<?php
unset($tableau);
while ($row = mysql_fetch_array($resultSet))
{
$tableau[]="<tr><td>".$row['champ1']."</td><td>".$row['champ2']."</td><td>".$row['champ3']."</td></tr>";
}
echo '<table>';
for ($i=count($tableau)-1; $i >=0; $i--)
{
echo $tableau[$i];
}
echo '</table>';
?>
Pas testé mais ça doit pas être loin.
Bon ben la solution d'invité te convient c'est super (je te proposais celle de Ryle au cas où order aurait modifié l'ordre).
Bonne continuation
Modifié en dernier par jpaul le 27 avr. 2006, 09:20, modifié 3 fois.
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 124 Messages

27 avr. 2006, 09:14

Ah génial c'est tout simple mais quand on sais meme pas que order bye existe forcément.... :?

Merci l'invité ! :wink: