0

我有一个查询我试图使用 mysql_query() 函数从 php 运行,它如下

    $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 中的相同查询返回排名最高的高分。

我只是不明白..有人有什么想法吗?

问候/弗雷德

4

4 回答 4

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);
于 2013-08-06T17:19:49.983 回答
0

您的变量应包含在 {} 中,因为它位于字符串中。此外,由于名称似乎应该是用户生成的,请确保在将其放入查询之前转义字符串。其他人也是对的,因为 name 可能是一个字符串,它也需要一组引号。

于 2013-08-06T17:15:37.333 回答
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);
于 2013-08-06T17:16:20.667 回答
0

问题在于WHERE name = $name,当然应该WHERE name = '$name'在评论中指出

于 2013-08-06T17:29:58.873 回答