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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo ''.$datau6['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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo ''.$datau7['nickname'].' ('.$invest.')<br />';
Avez-vous une idée de comment je pourrais formuler ça ?
Bien cordialement,
LM
Partager