le 25/03/2004 à 19:28
bibi
Ces requêtes marchent , il n'y a pas de pb.Le seul problème est que le order by points fait le order by sur la valeur de points de départ, celle où l'on n'a pas encore ajouté les points des filleuls.
par exemple
bibi a 800 points
globule a 900 points
donc le order by desc va metre globule au dessus de bibi
le probleme c'est que si bibi recoi 200 points par ses filleuls, il aura 1000 pts et globule 900 mais globule sera toujours au dessus dans le classement.je voulais savoir si on ne pouvai pas mettre dans un tableau nbpoints,idnick et ensuite faire une boucle d'affichage du plus grands nbpoints au plus petit
merci j'espere que vous avez compris :S
par exemple
bibi a 800 points
globule a 900 points
donc le order by desc va metre globule au dessus de bibi
le probleme c'est que si bibi recoi 200 points par ses filleuls, il aura 1000 pts et globule 900 mais globule sera toujours au dessus dans le classement.je voulais savoir si on ne pouvai pas mettre dans un tableau nbpoints,idnick et ensuite faire une boucle d'affichage du plus grands nbpoints au plus petit
merci j'espere que vous avez compris :S
<?php
$cpt=1;
$req_sql = mysql_query('select idnick from points ORDER BY points DESC');
while($req = mysql_fetch_array($req_sql))
{
$pts =0;
$req2_sql = mysql_query('select round(points,1),id,jauge from points where idnick="'.$req['idnick'].'"');
while($req2 = mysql_fetch_array($req2_sql))
{
$pts = $req2['round(points,1)'];
$pts = $pts - $req2['jauge'];
$req3_sql = mysql_query('select pseudo from filleul where id="'.$req2['id'].'"');
while($req3 = mysql_fetch_array($req3_sql))
{
$req4_sql = mysql_query('select round(points*10/100,1) from points where idnick = "'.$req3['pseudo'].'"');
while($req4 = mysql_fetch_array($req4_sql))
{
$pts = $pts + $req4['round(points*10/100,1)'];
}
}
}
?>
<tr><td><?= $cpt; ?></td><td><?= $req['idnick']; ?></td><td><?= $pts; ?></td></tr>
<?php
$cpt++;
}
?>