2011-03-28 3 views
0

소셜 네트워킹 사이트를 만들고 있는데 두 가지 유형의 상태가 있습니다. 친구와 대중. 사용자는 둘 중 하나에 업로드 할 수 있습니다. 이 질문에 대한 관련 표는 회원, 친구 및 지위입니다. 멤버의 관련 필드는 핸들입니다. 친구의 관련 필드는 친구 및 사용자 이름입니다. 상태 관련 필드는 처리 및 유형 (값이 친구 또는 공개)입니다. 사용자 상태를 포함하도록 친구 피드를 설정하려면 어떻게해야합니까?

나는 나는 단지 친구에 필요한 상태를 전화 관리,하지만 내 질문은 여기에 사용자의 친구의 모든 상태를 보여줍니다 코드의 내가 친구뿐만 아니라 사용자의 상태

을 보여주기 위해 어떻게해야합니까 방법이다.

$shawing = "SELECT * 
FROM status 
JOIN friends 
ON status.Handle = friends.Friend where friends.Username='$members[Handle]' and status.Type='friends' ORDER by status.Id DESC" or print mysql_error(); 

$members[Handle] calls from an include that identifies the user who is logged in. 

나는 아마 간단하다고 알고 있지만 친구와 사용자 상태를 모두 표시하도록 어떻게 수정합니까?

답변

0

UNION 함께 (병합 두 개의 쿼리)

$shawing = " 
    SELECT 1 IsUser, '$members[Handle]' Friend, status.* 
    FROM status 
    where status.Handle='$members[Handle]' 
     and status.Type='friends' 
    UNION ALL 
    SELECT 2 IsUser, friends.Friend, status.* 
    FROM status 
    JOIN friends ON status.Handle = friends.Friend 
    where friends.Username='$members[Handle]' 
     and status.Type='friends' 
    ORDER by IsUser, status.Id DESC" or print mysql_error(); 
+0

좋아, 글쎄, 나는 그것을 추가하려고 노력하고, 지금은 내 실수로 오류가 발생합니다. – Brad45

+0

$의 shawing = " SELECT '$ 구성원 [핸들]'친구, 상태를 표시합니다. * 상태 FROM 곳 status.Handle은 = '$ 회원 [핸들]' 및 status.Type = '친구' UNION ALL SELECT 친구 .Friend 상태. * 상태 FROM 이 status.Handle 친구들을 가입 = friends.Friend 곳 friends.Username = '$ 구성원 [핸들]' 및 status.Type = status.Id DESC로 '친구' ORDER " 또는 mysql_error()를 출력한다. $ booga = mysql_query ($ shawing); while ($ row = mysql_fetch_array ($ booga)) { – Brad45

+0

또한 원래 게시글에서 제공 한 코드로 작동합니다. – Brad45

0

'오른쪽 결합'으로 변경하십시오. '친구'에 관련 항목이없는 '상태'값을 차단하고 있습니다. 아마 'where'절도 많이 잃을 수 있습니다.

+0

감사합니다. where 절을 삭제하면 무엇을 의미합니까? 친구 섹션의 상태에서만 선택해야합니다. 공개 상태 및 친구 상태. RIGHT JOIN 코드는 어떻게 생겼을까요? 노력했지만 지금은 오류가 발생했습니다. – Brad45

+0

좋아요, 나는 RIGHT JOIN으로 작업 할 수있는 코드를 얻을 수 있었지만 여전히 친구 상태 만 보여줍니다. – Brad45

관련 문제