Page 1 sur 1

while mais dans l'autre sens...

Posté : 26 avr. 2006, 17:57
par ephemere
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

Posté : 26 avr. 2006, 18:03
par zeus
Surement en changeant l'ordre de tri de ta requete :roll:

Posté : 26 avr. 2006, 18:16
par Ryle
()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 :)

Posté : 27 avr. 2006, 08:53
par ephemere
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...

Posté : 27 avr. 2006, 08:59
par Santro
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

Posté : 27 avr. 2006, 09:12
par jpaul
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

Posté : 27 avr. 2006, 09:14
par ephemere
Ah génial c'est tout simple mais quand on sais meme pas que order bye existe forcément.... :?

Merci l'invité ! :wink: