我有一个查询我试图用php运行mysql_query()函数,它如下
$result = mysql_query(
"SELECT score,name,time,
FIND_IN_SET( score, (SELECT GROUP_CONCAT( score ORDER BY score DESC,time ASC ) FROM Highscores )) AS rank
FROM Highscores WHERE name = $name Order BY rank LIMIT 1");
由于某些原因,这不会返回任何结果,而phpMyAdmin中的相同查询会返回排名靠前的高分。
我只是没有得到它......任何人都有任何想法?
此致 /佛瑞德
答案 0 :(得分:1)
尝试一下: -
$qry="SELECT score,name,time,
FIND_IN_SET( score, (SELECT GROUP_CONCAT( score ORDER BY score DESC,time ASC ) FROM Highscores )) AS rank
FROM Highscores WHERE name ='".$name."' Order BY rank LIMIT 1";
$result = mysql_query($qry);
答案 1 :(得分:0)
您的变量应该包含在{}中,因为它在字符串中。此外,因为名称似乎应该是用户生成的,请确保您在将字符串放入查询之前转义字符串。其他人也是对的,因为名字大概是一个字符串,它也需要一组引号。
答案 2 :(得分:0)
请尝试这个并告诉我们是否有错误,以便我们进行调试
$result = mysql_query("SELECT score,name,time, FIND_IN_SET( score, (SELECT GROUP_CONCAT( score
ORDER BY score DESC,time ASC ) FROM Highscores )) AS rank FROM Highscores WHERE name = $name Order BY rank LIMIT 1") or die("error is: ".mysql_error());
var_dump($results);
答案 3 :(得分:0)
问题与WHERE name = $name
有关,当然应该是WHERE name = '$name'
,如评论中所指出