Использована функция Сортировать по сумме на сумму - PullRequest
0 голосов
/ 22 декабря 2010
    <?
$tablae = mysql_query("SELECT * FROM order_history where (type!='rent_referral' AND type!='rental_balance') AND date>'" . strtotime($time1) . "' AND date<'" . strtotime($time2) . "'  GROUP BY user_id"); 
while ($order = mysql_fetch_array($tablae)) { 

?>
<tr>
<?
$tablaes = mysql_query("SELECT * FROM members where id='$order[user_id]'"); 
$user = mysql_fetch_array($tablaes);
$idsd=$user['id'];
$rPaid=mysql_query("SELECT SUM(`price`) AS total FROM order_history WHERE (type!='rent_referral' AND type!='rental_balance') AND date>'" . strtotime($time1) . "' AND date<'" . strtotime($time2) . "'");
$hdPaid = mysql_fetch_array($rPaid);
$sPaid=mysql_query("SELECT SUM(`price`) AS total FROM order_history WHERE user_id='$idsd' AND (type!='rent_referral' AND type!='rental_balance') AND date>'" . strtotime($time1) . "' AND date<'" . strtotime($time2) . "'");
while ($hPaid = mysql_fetch_array($sPaid)) { 
?>
<td><?=$user['username']?></td>
<td><?=$hPaid['total']?></td>
<?  
}
?>

</tr>

<? } ?>

Это дает мне этот результат http://dl.dropbox.com/u/14384295/test.jpeg

Я хочу заказать итоговые цены по DESC.

Мне понадобится

$sPaid=mysql_query("SELECT SUM(`price`) AS total FROM order_history WHERE user_id='$idsd' AND (type!='rent_referral' AND type!='rental_balance') AND date>'" . strtotime($time1) . "' AND date<'" . strtotime($time2) . "'");

всегопо заказу DESC.

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Будьте очень осторожны с инструкциями GROUP BY в вашем запросе SQL.Все столбцы, которые находятся в результате и не являются агрегированными выражениями (выражениями будут count, SUM, max и т. Д., Работающие в группе, а не в строках), должны находиться в вашей группе по выражению;Здесь вы используете select *, вместо этого вы должны попытаться перечислить реальные столбцы и получить этот список в своей группе, либо использовать только SELECT user_id.

Большинство баз данных не позволит вам запустить такие не оченьправильно сформированная группа по запросу, но MySQl не освобождает вас от ответственности, это не значит, что он не даст вам совершенно неверных результатов, если вы не ожидаете этого правила (все столбцы, которые не являются агрегатами, должны быть в группе)1003 *

Тогда вы должны иметь возможность упорядочить по обобщенному выражению, повторно используя это выражение, а не его псевдоним в предложении порядка.

0 голосов
/ 22 декабря 2010

Вы можете использовать сортировку на стороне клиента с javascript, есть несколько хороших аддонов jQuery, которые могут это сделать.

Или вы должны полностью переписать свой код, чтобы получить один SQL-файл с использованием объединений и группировки по.

Но я не могу по-настоящему следовать логике с $ rPaid, $ hPaid и $ sPaid, поэтому я не могу вам помочь.

...