2012-11-21 2 views
1

간단한 PHP MySQL 기반의 메시지 클라이언트를 만들려고합니다.간단한 PHP MySQL 메시지 클라이언트

은 지금까지 나는 두 개의 테이블이 있습니다

사이트에 등록 된 각 사람에 대한 정보를 보유하고

users. userID, firstName, lastName 등을 포함

mailMessageID, fromUserID, toUserID, messageSubject, messageBody, dateSent

사용자가 로그인합니다. 그들이 로그인하면 그들이 볼 수에 다음 등록 할 수 있습니다 그들의 ' 받은 편지함 '.

내가 알아 내려고하는 것은 모든 메시지를 나열하는 방법과 각 메시지의 출처를 말하는 미리보기입니다. 분명히 mail 테이블에서 fromUserID 필드를 가져올 수 있지만 사용자에게 아무런 의미가 없다는 것은 숫자 일 뿐이며 userID을 사용하고 users 테이블을 쿼리하고 보낸 사람의 이름과 성을 가져옵니다.

나는 JOIN을 사용할 수 있다는 것을 알고 있지만 어떻게해야하는지 잘 모르거나 하위 쿼리를 사용할 수 있습니까? 더 나은 무엇입니까?

모든 의견을 환영합니다.

답변

2

, 뭔가 같은 :.

SELECT m.*, u.* 
FROM mail m 
    LEFT JOIN users u ON u.id = m.fromUserID 
WHERE m.toUserID == 'LoggedInUserId' 
+0

나는 이것을 시도했지만'u.id'를'u.userID'로 변경하고'당신은 SQL 구문에 오류가 있습니다; 올바른 구문이 '=='1001 ''at line 1' 근처에서 사용하도록 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 그것은'=='이어야만합니까? 또는 'LIKE'일 수 있습니까? – Mike

+0

'LIKE'으로 변경하고 효과가있었습니다. 필요한 것뿐입니다. 고맙습니다. – Mike

+0

우수. 조인은 거의 항상 하위 쿼리보다 빠릅니다. – KingGeekus

0

사용자의 유효성을 검사 할 때 세션에서 사용자 ID를 유지하십시오. 다음 쿼리를 사용하여 데이터를 가져올 수 있습니다. 메일을 선택 * 메일 m에서, 사용자 U 어디 u.user_id = m.to_user_id 및 u.user_id = 사용자 ID 로그인 당신은 사용자 테이블에 가입 할거야

+0

나는 당신의 대답을 정확하게 이해할지는 모르지만 나는 그것이 내가 생각했던 것과 다르다고 생각한다. 로그인 한 사람이 아닌 발신자의 세부 정보를 얻고 싶습니다. – Mike

+0

나는 당신이 나를 데려 가지 않아도 발신자 정보뿐만 아니라 그들로부터 오는 메시지도 얻을 필요가 있다고 생각합니다. 우리는 to_userid를 기반으로 메시지를 가져오고 그는 로그인 한 사람입니다. 나는 이번에는 분명하다고 생각합니다. – Chella