2013-10-23 131 views
3

我有一点我无法解决的问题。我正在通过我的DB以下使用PHP:SQL查询输出的反向顺序

$strQuery = "select * from LastResult ORDER BY Date DESC LIMIT 10"; 

结果都回来了罚款,并符合市场预期,但我则必须将这些送入折线图,但是当我这样做,他们显然是在显示相反,因为我有数据库返回他们在DESC日期这意味着最近将是第一次返回。

有没有办法在返回这些结果之后,我可以在将数据提供给我的图表之前将其顺序颠倒过来。

下面是完整的查询(请不要对MySQL的使用,而不是库MySQLi的评论,我没有写位)

$strQuery = "select * from LastResult ORDER BY Date DESC LIMIT 10"; 

$result3 = mysql_query($strQuery) or die(mysql_error()); 

if ($result3) { 
    while($ors4 = mysql_fetch_array($result3)) { 
     $NumberResults2 = $ors4['Date']; 

     $strQuery = "select AvGoalDifference as Average from LastResult where Date= '$NumberResults2'"; 

     $result4 = mysql_query($strQuery) or die(mysql_error()); 
     $ors3 = mysql_fetch_array($result4); 

     $strXML .= "<set label='" . $NumberResults2 . "' value='" . $ors3['Average'] . "' />"; 

     mysql_free_result($result4); 
    } 
} 

mysql_close($link); 

$strXML .= "</chart>"; 
$chart2 = renderChart("charts/Line.swf", "", $strXML, "AverageGD", 500, 260, false, true, true); 

echo $chart2; 
+0

大概是这样,OP只获得10个最新的 – aynber

+0

,因为这只会返回前10个结果。我需要它返回最后10个,但以相反的顺序。 –

+0

重复10000000s完全相同的问题。 –

回答

10

您可以重新为使结果集做一个外选择和订购您想要的方式(ASC):

SELECT * FROM (
    select * from LastResult ORDER BY Date DESC LIMIT 10 
) as 
ORDER BY Date ASC; 

编辑:如果失败(因为这将在PostgreSQL的9.3.4),使用的别名内选择使其如下:

SELECT * FROM (
    select * from LastResult ORDER BY Date DESC LIMIT 10 
) as foo 
ORDER BY foo.Date ASC; 
+0

这工作完美,我寻找年龄的答案,谢谢。它确实抛出了错误'每个派生表都必须有自己的别名。'但我只需要在'AS'中添加如下: $ strQuery =“select * FROM(select * from LastResult ORDER BY Date DESC LIMIT 10)AS Date ORDER BY Date”; –

+0

@geoff_goode。尼斯。真高兴你做到了。 –

0

你可以做到这一点在本查询:

$strQuery = "select * FROM (select * from LastResult ORDER BY Date DESC LIMIT 10) ORDER BY Date"; 
0

我会张贴此作为一个评论,但我没有足够的权限才能做到这一点。

不要忘记别名的内部选择或MySQL会产生一个错误。

SELECT * FROM (
    select * from LastResult ORDER BY Date DESC LIMIT 10 
) aliasT 
ORDER BY Date ASC; 
0

尝试使用此 SELECT * FROM( SELECT * FROM LASTRESULT ORDER BY日期DESC LIMIT 10 ) ORDER BY日期ASC;

0

如果您使用谷歌折线图,那么可以在绘制图表时完成反转订单。

hAxis { 
    direction: -1 
} 

我有3个日期,01/01,01,02,01,03,01/04我想第3,但显示日期的顺序,不挑反向最后三个! 这解决了我的问题。