Ordonner des resultats par calcul
Bonjour,
J'aimerais faire une requête qui trie les resultats après les avoir groupés et qui les ordonne selon un calcul préalablement fait et non ordonner a partir d'une colonne d'une table.
Voici à quoi ca ressemble:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| require '../../connect.inc.php';
$sqluc6 = "SELECT * FROM tips INNER JOIN users ON id = uid GROUP BY uid;";
$requc6 = mysql_query($sqluc6) or die('Erreur SQL !<br>'.$sqluc6.'<br>'.mysql_error());
while ($datau6 = mysql_fetch_assoc($requc6))
{
$sqluc3 = 'SELECT sum(stake) FROM tips,users WHERE tips.uid = users.id AND tips.uid = "'.$datau6['id'].'" AND tips.gain > -1';
$sqluc4 = 'SELECT sum(gain) FROM tips,users WHERE tips.uid = users.id AND tips.uid = "'.$datau6['id'].'" AND tips.gain > -1';
$requc3 = mysql_query($sqluc3) or die('Erreur SQL !<br>'.$sqluc3.'<br>'.mysql_error());
$requc4 = mysql_query($sqluc4) or die('Erreur SQL !<br>'.$sqluc4.'<br>'.mysql_error());
$return2 = mysql_result($requc4,0);
$return = round($return2, 2);
$invest2 = $return / mysql_result($requc3,0) *100;
$invest = round($invest2, 2);
$sqluc7 = "SELECT * FROM tips INNER JOIN users ON id = uid WHERE uid = ".$datau6['id']." ORDER BY ".$invest." DESC";
$requc7 = mysql_query($sqluc7) or die('Erreur SQL !<br>'.$sqluc7.'<br>'.mysql_error());
echo ''.$datau6['nickname'].' ('.$invest.')<br />'; |
Le problème est que j'arrive bien à afficher l'utilisateur, sa moyenne en pourcentage (depuis le calcul $invest). Mais je n'arrive pas à ordonner selon ce précédent calcul.
J'ai essayé sinon de remplacer
Code:
echo ''.$datau6['nickname'].' ('.$invest.')<br />';
par
Code:
echo ''.$datau7['nickname'].' ('.$invest.')<br />';
Mais je perds le nickname, il ne veut pas s'afficher et n'ordonne pas tel que je lui ai demandé de toute manière.
Avez-vous une idée de comment je pourrais formuler ça ?
Bien cordialement,
LM