0

私はすべてを試しましたが、何も機能しません..私が書いた他のコードでも機能します。しかし、何らかの理由で今はそうではありません。

ID = userID の 2 つのテーブルを結合したいと考えています。ページをロードすると、次のエラーが表示されます。

警告: mysql_fetch_array(): 指定された引数は、17 行目の /home/ynxwleus/domains/mustseenmovies.nl/public_html/films/userinfo.php の有効な MySQL 結果リソースではありません

この問題で私を助けることができる人はいますか?

コード:

$userID = $_SESSION['s_userID'];
        echo $userID;
        $query = "SELECT userID, userName, userFrontname, userSurname, filmID 
        FROM users
        JOIN seenIt
        ON users.userID = seenIt.userID 
        WHERE (userID ='$userID')";

        $res = mysql_query($query);
                while ($row = mysql_fetch_array($res)) {
                    echo $row['userName'];
                    echo $row['userFrontname'];
                    echo $row['userSurname'];
                    echo $row['filmID'];
                }

ありがとうございます!

4

3 に答える 3

7

where句にはエイリアスが必要です:

    WHERE (users.userID ='$userID')

select 句には、userId のエイリアスも必要です。

    SELECT users.serID, userName, userFrontname, userSurname, filmID

実際、常にエイリアスを使用することは本当に良い考えです:

SELECT u.userID, u.userName, u.userFrontname, u.userSurname, si.filmID 
FROM users u join
     seenIt si
    ON u.userID = si.userID 
WHERE u.userID ='$userID'

SQL エンジンはどちらが参照されているかを認識できないため、元のクエリには構文エラーがありますuserIDonああ、あなたは「句が値が同じであることを指定しているので、それは明らかだ」と考えています。まあ、少なくとも常識に関して言えば、人間は SQL コンパイラよりも賢いです。

于 2013-02-04T16:59:30.870 に答える
2

クエリがエラーを返す場合mysql_queryは、ブール値を返しますfalse。を使用して、このエラーを印刷できますmysql_error()

$res = mysql_query($query) or die(mysql_error());

さらに、mysql_fetch_rowブール値では機能しないため、コンパイル エラーが発生します。

ゴードンが指摘したように、クエリにはエラーがあります。

mysqlさらに、廃止されたため、もう使用しないことをお勧めします。MySQLi、またはPDO代わりに使用します。

于 2013-02-04T17:03:13.340 に答える
0
$query = "SELECT userID, userName, userFrontname, userSurname, filmID 
          FROM users
          JOIN seenIt
          WHERE users.userID = seenIt.userID 
          AND  users.userID = ".$userID." ";
于 2014-12-07T10:13:06.637 に答える