我有一个问题无法解决。我正在使用PHP通过我的数据库运行以下内容:
$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;
您可以通过执行外部选择并按所需方式对结果集进行排序来对该结果集进行重新排序 (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;
您可以在查询中执行此操作,如下所示:
$strQuery = "select * FROM (select * from LastResult ORDER BY Date DESC LIMIT 10) ORDER BY Date";
尝试使用这个;
SELECT * FROM (
select * from LastResult ORDER BY Date DESC LIMIT 10
)
ORDER BY Date ASC;
不要忘记为
内部选择设置别名,否则MySQL将产生错误。
SELECT * FROM (
select * from LastResult ORDER BY Date DESC LIMIT 10
) aliasT
ORDER BY Date ASC;