2016-09-28 4 views
0

내 adminpanel에 대해 일부 통계를 가져오고 싶습니다. 사용자 및 cms_prosjekt라는 두 개의 테이블이 있습니다. 얼마나 많은 프로젝트가 사용자와 동일한 속성을 가진 인지 계산하고 싶습니다.LEFT JOIN MySQL과 PHP

각 사용자는 프로젝트에 연결된 좌우명이 있습니다. 예 : 모토는 정신이고 프로젝트 코드는 영혼입니다. 아무것도 반환하지 않습니다. 프로젝트의 코드와 동일한 모토를 가진 두 명의 사용자가 있습니다.

<?php 

    $result = mysql_query("SELECT 
     users.id, 

     COUNT(users.motto) AS count 
    FROM 
     users 
     LEFT JOIN cms_prosjekt ON 
     users.motto=cms_prosjekt.code 
    GROUP BY 
     users.motto"); 
$num_rows = mysql_num_rows($result); 

    echo "$num_rows"; 

    ?> 
+2

:

나는이 시도. NOTHING을 얻었으므로 쿼리가 실패하고 부울 false가 반환되고 오류 처리가 전혀 없으므로 아무 것도 잘못 될 수 없다고 가정하기 때문에 부울 false를 문자열로 생성합니다.이 문자열은 길이가 0 인 문자열과 보이지 않는 문자열입니다. –

+0

내가 쓴 것처럼, 나는 프로젝트와 동일한 모토를 가진 두 명의 사용자를 갖고있다. 그래서 두 개를 돌려 주어야합니까? –

+0

새로운 개발을 위해 더 이상 사용되지 않는 mysql_ 인터페이스 함수를 사용하지 마십시오. mysqli 또는 PDO를 사용하십시오. 이 코드는 비유적인 핑키 손가락을 구석 구석에두고 있습니다. "나는 단지 그것이 모두 계획대로 진행될 것이라고 생각합니다." 쿼리에 오류가 발생하면 MySQL은 오류 메시지를 반환합니다. 이 코드는 MySQL이 오류를 반환 할 수 있다는 아이디어를 완전히 무시한 것 같습니다. – spencer7593

답변

1

조회하지 users.motto users.id되어야 의해 user.motto

"SELECT 
    user.motto 
    , COUNT(*) AS count 
FROM users 
LEFT JOIN cms_prosjekt ON users.motto=cms_prosjekt.code 
GROUP BY users.motto" 
0

그룹에서 수 (*) 및 그룹 같아야

<?php 
$result = mysql_query("SELECT users.id, COUNT(users.motto) AS count FROM users LEFT JOIN cms_prosjekt ON users.motto=cms_prosjekt.code GROUP BY (users.id)"); 
$num_rows = mysql_num_rows($result); 
echo $num_rows; 
?> 

참고 왼쪽 조인에 대한 값을 볼 수 없습니다. cms_prosjek의 데이터가 필요하지 않지만 나중에 사용하려면 그대로 두십시오.

0

솔루션,하지만 지금은 쿼리에 특정 사용자 ID를 추가하고 싶습니다. 모든 관리자는 자신의 홈 영역이 있으므로 특정 관리자와 연결된 모든 사용자를 나열하려고합니다. 각 관리자는 사용자가있는 프로젝트를 만듭니다. 쿼리가 성공했을 경우는 번호를 얻을 것,

$result = mysql_query("SELECT users.motto, COUNT(*) AS count FROM users 
WHERE id = '".$_SESSION['user']['id']."' 
LEFT JOIN cms_prosjekt ON users.motto=cms_prosjekt.code 
GROUP BY users.motto");