function outputscores($mysqlquery,$reverse=false)
{
while($row = mysql_fetch_array($mysqlquery))
{
echo '<img src="img/date.png" /> ' . date("j M Y",strtotime($row['timestamp'])) . '
<img src="img/time.png" /> ' . date("H:i:s",strtotime($row['timestamp'])) . '
<img src="img/star.png" /> '.$row['score'].$_GET["scoretype"].'<br />';
}
}
如果$reverse被设置为true,我需要反转数组,但是PHP说mysql_fetch_array
的输出不是一个有效的数组,$mysqlquery本身也不是。
有什么帮助吗?
哇,我今天问了这么多问题。
编辑
$result = mysql_query("SELECT * FROM $gid LIMIT 25") or throwerror(mysql_error());
outputscores($result);
EDIT 2另一个可能的调用:
$result = mysql_query("SELECT * FROM ".$gid.",users WHERE users.lastcheck < ".$gid.".timestamp") or throwerror(mysql_error());
outputscores($result);
3条答案
按热度按时间ulydmbyx1#
编辑:将SQL查询更改为:
将函数更改为:
在这里,通过添加单词
ORDER BY id DESC
,您将使记录按表中“id”列的降序排序。通过键入ASC
而不是DESC
,您可以使它们按升序排序。此外,您可以用表中的任何其他列替换“id”,例如timestamp
、score
等。编辑:或者,您也可以创建一个不同的函数,将
LIMIT
和ORDER BY
子句添加到查询中。然后,您可以执行以下操作:de90aj5v2#
您可能正在尝试反转整个结果集,请尝试执行以下操作:
当然,正如soulmerge所说,你应该给函数一个mysql资源,而不是一个实际的查询。
关于您的注解,请确保您的查询确实返回了结果,在phpMyAdmin或其他工具中测试它,或者像我上面所做的那样在while循环中添加一个简单的print。
fruv7luv3#
如果我没弄错的话,$mysqlquery应该是mysql查询结果,而不是数组。有两种情况
mysql_fetch_array()
不返回数组:1.参数不是查询结果资源(使用
var_dump($mysqlquery))
验证,或1.没有结果(
mysql_fetch_array()
返回FALSE
)。我希望您没有像变量名所暗示的那样将查询本身传递给
mysql_fetch_array()
。在获取任何内容之前,您必须调用mysql_query()
。反转本身可以通过读取所有行并调用array_reverse()来完成。例如: