-1

私はこのシリーズを使用しましたが、私はこのビデオに慣れmysql_num_rowsていて、最初からずっと私を怒らせてきました. http://www.youtube.com/watch?v=HP75yyjHgTgmysql_num_rowsこれらのエラー をすべて修正するのに 5 時間も費やしました。現在、プロフィールページを作成していて、エラーが発生しています。エラーは次のとおりです。

警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定し、null は 8 行目の /home/ztechrel/public_html/TESTING/blarg/REMAKE/profile.php で指定されます (1 行目は mysql_num_rows 部分です)

profile.php のコードは次のとおりです。

<?php include("inc/incfiles/header.php"); ?>
<?php
if(isset($_GET['u'])) {
    $username = mysql_real_escape_string($_GET['u']);

    if(ctype_alnum($username))   //check user exists
        $check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'");

    if(mysql_num_rows($check)===1) 
    {
        $get = mysql_fetch_assoc($check);
        $username = $get['username'];
        $firstname = $get['first_name'];
    }
    else
    {
        echo "<h2>User Does Not Exist</h2>";
        exit();
    }
}
?>

これを修正する方法はありますか?または、私がこれを書くことができる別の方法を誰かが知っていますか? 彼が再び使用しても驚かないでしょうmysql_num_rows。実装が簡単で代わりに使用できるものはありますか? 他の情報が必要な場合は、お尋ねください。

4

4 に答える 4

0

変数$usernameが空でないことを確認してください。ctype_alnumはfalseを返します。だから$query空です。

<?php include("inc/incfiles/header.php"); ?>
<?php

    if(isset($_GET['u'])) {
        $username = mysql_real_escape_string($_GET['u']);

        if ($username != "" && if(ctype_alnum($username))) {
            $check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'");

            if(mysql_num_rows($check)===1) 
            {
                $get = mysql_fetch_assoc($check);
                $username = $get['username'];
                $firstname = $get['first_name'];
            }
            else
            {
                echo "<h2>User Does Not Exist</h2>";
                exit();
            }
        }
    }

?>
于 2013-01-28T11:11:58.560 に答える
0

これを使用して、クエリのエラーをチェックします

$username = mysql_real_escape_string($_GET['u']);
if(ctype_alnum($username)) {
    //check user exists
    $check = mysql_query("SELECT username,first_name FROM users 
    WHERE username='$username'") or die(mysql_error());
    if(mysql_num_rows($check)===1){
        $get = mysql_fetch_assoc($check);
        $username = $get['username'];
        $firstname = $get['first_name'];
    }
    else
    {
        echo "<h2>User Does Not Exist</h2>";
        exit();
    }
}
于 2013-01-28T10:29:27.660 に答える
0

PHP からエラーをキャプチャしていることを確認してください。

前のステートメント mysql_query が実行されていないため、結果が設定されていない可能性があります。

mysql_query が正常に実行されている場合は以下を試してください。

$check = mysql_query("SELECT username,first_name FROM users WHERE username='$username'")  or die(mysql_error()."<br>".$sql);
于 2013-01-28T10:29:48.410 に答える
0

これは、クエリが何も返さないことを意味します。クエリに echo を入力し、ブラウザに表示します。次に、クエリをコピーして、phpmyadmin または mysql クエリ ブラウザ、またはその他の mysql エディタで実行します。$usernameクエリの値が正しいかどうか、またはフィールド名が間違っているかどうかを確認してください。

于 2013-01-28T10:30:11.643 に答える