2013-02-04 2 views
0

모든 것을 시도했지만 아무것도 작동하지 않습니다. 내가 작성한 다른 코드에서도 작동합니다. 그러나 웬일인지 지금은 그렇지 않을 것이다.JOIN MySQL이 작동하지 않습니다

ID가 userID 인 두 테이블을 결합하고 싶습니다. 페이지를로드 할 때 다음 오류가 발생합니다.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/ynxwleus/domains/mustseenmovies.nl/public_html/films/userinfo.php on line 17

이 문제와 관련하여 도움을 줄 수있는 사람이 있습니까?

코드 : 고급의

$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']; 
       } 

감사합니다!

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

사실, 그것은 항상 사용하기에 정말 좋은 생각입니다 :

WHERE (users.userID ='$userID') 

당신의 선택 조항도 사용자 ID에 별칭이 필요합니다 : 절은 별칭을 필요로

+0

답변을 upvoted하지만 보조 노트로 사용 중지 된 mysql 대신 mysqli를 사용하는 것이 좋습니다. – PlantTheIdea

답변

7

귀하 별칭 :

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' 

원래 쿼리의 구문은 다음과 같습니다. err SQL 엔진이 어떤 userID이 참조되는지 알지 못하기 때문입니다. 오, 당신은 생각하고 있습니다. 왜냐하면 on 절이 값이 동일하도록 지정했기 때문입니다. " 적어도 상식에 있어서는 인간은 SQL 컴파일러보다 더 똑똑합니다.

+0

생각해 보니 너무 효과가 없었습니다. –

+2

@DannyPostma 별칭도 필요합니다. 'SELECT users.userID, userName ... ' –

+0

예, 방금 알아 챘습니다. 고마워! 고맙습니다. –

2

쿼리가 오류를 반환하면 mysql_query은 부울 false을 반환합니다. mysql_error()을 사용하여이 오류를 인쇄 할 수 있습니다. 당신은 컴파일 오류를 얻을 수 있도록

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

또한, mysql_fetch_row는 부울 작동하지 않습니다.

고든 (Gordon)이 지적한 것처럼 쿼리에 오류가 있습니다.

또한 더 이상 사용되지 않으므로 mysql을 사용하지 않는 것이 좋습니다. 대신 MySQLi 또는 PDO을 사용하십시오.

+0

나는 MySQLi에 대해 읽을 것이다. 전에는 들어 보지 못했습니다. –

0
$query = "SELECT userID, userName, userFrontname, userSurname, filmID 
      FROM users 
      JOIN seenIt 
      WHERE users.userID = seenIt.userID 
      AND users.userID = ".$userID." "; 
+1

아주 나쁜 !! 이 코드는 SQL Injections에 유창합니다! – Misch

+0

설명을 추가하십시오. – Silicomancer

관련 문제