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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo ''.$datau6['nickname'].' ('.$invest.')<br />';
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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