-2

これは本当の初心者の質問だと確信しています。関数なしでテストすると、行ID「75」が返されるため、コードが機能することはわかっています。関数に貼り付けても、何も返されません。誰でもアドバイスできますか?

function gameID(){
        $gameIDsql = mysql_query("SELECT id FROM game WHERE player1='$player1' ORDER BY id DESC LIMIT 1");
        $row = mysql_fetch_assoc($gameIDsql);
        echo $row['id'];
        }

gameID();
4

5 に答える 5

2

関数に変数$player1はありません。引数を取るように関数を変更する必要があります。

function gameID($player1){
        $gameIDsql = mysql_query("SELECT id FROM game WHERE player1='$player1' ORDER BY id DESC LIMIT 1");
        $row = mysql_fetch_assoc($gameIDsql);
        echo $row['id'];
        }

そしてそれを次のように呼び出します:

gameID($player1);

エラー報告を有効にする必要があります。そうすると、変数が未定義であるというエラー メッセージが表示されます。

于 2013-07-25T19:10:04.897 に答える
1

これは、関数内で、$player1変数がスコープ外になるように定義していないためです。関数は次のようになります。

function gameID($player1){
    $gameIDsql = mysql_query("SELECT id FROM game WHERE player1='$player1' ORDER BY id DESC LIMIT 1");
    $row = mysql_fetch_assoc($gameIDsql);
    echo $row['id'];
}

それがあなたのコードの基本的な問題です。その他の問題は次のとおりです。

于 2013-07-25T19:09:57.787 に答える
0

$player1関数のスコープ内で定義されていない場合は、次のようにその関数の引数として送信する必要があります。

function gameID($player1){
        $gameIDsql = mysql_query("SELECT id FROM game WHERE player1='$player1' ORDER BY id DESC LIMIT 1");
        $row = mysql_fetch_assoc($gameIDsql);
        echo $row['id'];
        }

echo gameID();
于 2013-07-25T19:10:32.547 に答える
0

値を設定$player1して、引数として渡す必要があります。次に例を示します。

function gameID($player1){
    $gameIDsql = mysql_query("SELECT id FROM game'
        . ' WHERE player1='$player1' ORDER BY id DESC LIMIT 1");
    $row = mysql_fetch_assoc($gameIDsql);
    echo $row['id'];
}

gameID('davey');
于 2013-07-25T19:10:42.333 に答える