Dan*_*tma 0 php mysql join where
我已经尝试了一切,但没有任何作用..即使在我写的其他代码中,它也有效.但由于某种原因,它现在不会.
我想加入ID = userID的两个表.当我加载页面时,我收到此错误:
警告: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'];
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
您的where子句需要别名:
WHERE (users.userID ='$userID')
Run Code Online (Sandbox Code Playgroud)
您的select子句还需要userId上的别名:
SELECT users.serID, userName, userFrontname, userSurname, filmID
Run Code Online (Sandbox Code Playgroud)
事实上,总是使用别名是一个非常好的主意:
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'
Run Code Online (Sandbox Code Playgroud)
原始查询具有语法错误,因为SQL引擎不知道userID正在引用哪个.哦,你在想"那是显而易见的,因为on子句指定值是相同的." 好吧,人类比SQL编译器更聪明,至少在常识方面如此.