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

これを試して、エラーがある場合はお知らせください。デバッグできます

$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 に答える
0

変数は文字列であるため、{} で囲む必要があります。また、名前はユーザーが生成する必要があるように見えるため、クエリに入れる前に文字列をエスケープしていることを確認してください。name はおそらく文字列であり、その周りに一連の引用符も必要であるため、他の人も正しいです。

于 2013-08-06T17:15:37.333 に答える