2010-06-16 6 views
0

현재 MySql 데이터베이스에 2 개의 테이블이 있습니다.PHP가 mysql에서 사용자 데이터 가져 오기

구조 :

submessages 표에서
messages 
id | content | user_id | time 

submessages 
id | subcontent | msg_id | user_id | time 

는 열 msg_idmessagesid 열을 참조하는 외부 키이다. 현재 사용자 exlcuding -

지금은

$cur_userID = $user->current_id; // current user id. 
SELECT * FROM messages WHERE id > '{$_GET['id']}' // problem here 

이 어떻게 다른 사용자가 게시 한 subcontent에 대한 submessages 테이블을 쿼리 할 PHP에서 쿼리해야합니까?

user_id이 (가) $cur_userID 인 것을 의미하지 않습니다.

감사합니다.

답변

-1
"SELECT * FROM messages WHERE id != " . intval($_GET['id']); 
+0

실제로이 메시지는 내가 관심있는 메시지를 제외한 모든 메시지를 제공하는 것입니다. "id"는 사용자가 아닌 메시지의 ID라고 생각합니다. – MJB

+0

은 SQL에서'<>'과 같지 않고'! ='가 아닌가? –

+0

@Richard JP Le Guen : 표준 SQL에서 그렇습니다. 그러나 MySQL은 두 가지 형식을 모두 허용합니다 : http://dev.mysql.com/doc/refman/5.0/en/non-typed-operators.html – ircmaxell

0

부제 세부 사항을 원하십니까? 이 쿼리는 메시지 테이블의 모든 정보와 각 하위 메시지의 모든 정보를 가져옵니다. 따라서 조인. 그러나 메시지 (질문?)와 동일한 user_id를 갖는 하위 메시지 (답변?)는 제외됩니다.

SELECT m.* sm.* 
FROM messages m 
INNER JOIN submessages sm 
    ON m.id = sm.msg_id 
WHERE id > '{$_GET['id']}' // dont know why gt is used here... 
    AND m.user_id <> sm.user_id 

그리고 나는 그것이 SQL을 작성하는 방법을 이해 진짜로 문제 때문에 PHP이 점을 넣어하는 데 필요한 모든 서식을 무시.

제쳐두고 나는 id > $_GET['id'] 섹션을 얻지 못했습니다. 이 메시지 이후에 생성 된 모든 메시지를 요구하고 있으며 메시지의 하위 메시지를 찾고 싶습니다. 이것이 합리적 일 때 나는 정말로 알 수 없습니다. 그러나 그것이 당신이 원하는 것이면 이것은 효과가 있어야합니다. 이 아닌 이 아닌 것으로 의심됩니다.

관련 문제