2012-09-08 5 views
0

항목 68과 사용자 1이있는 데이터베이스에 5 개의 행이 있으므로 다음과 같이 출력하려면 "5"를 출력해야합니다. 대신이 출력은 "12345"입니다.MySQL 카운트가 작동 중임을 나타냅니다.

$resultb4 = mysql_query("SELECT COUNT(comparedRating) FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1"); 
while($rowb4 = mysql_fetch_array($resultb4)){ 
    $countcomparedratings=$rowb4['COUNT(comparedRating)']; 
} 
echo $countcomparedratings; 

내가 뭘 잘못하고 있니?

답변

1

12345를 얻는 이유는 쿼리가 5 개의 결과를 반환하고 코드를 출력하는 것이 쿼리에서 반환 된 배열의 연결을 단순히 출력하기 때문입니다.

데이터베이스 구조를 이해하지 못하면 '12345'를 얻는 이유가 GROUP BY 절과 관련이 있다고 생각합니다. MySQLWOrkbench와 같은 프로그램을 사용하여 데이터베이스에 연결하고 코드에 포함하기 전에 쿼리를 테스트하십시오. 쿼리를 디버깅하는 데 시간을 절약하는 기술입니다.

또한 열 이름을 참조 할 때 단순히 별칭을 참조하도록 COUNT 값의 별칭을 지정합니다.

SELECT COUNT(comparedRating) as ratingCount FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1"); 
+0

while 루프 내에서 매번 실행되는 것이 문제라는 것이 밝혀졌습니다. 나는 루프를 벗어난 위의 코드를 옮겨서 고정 시켰습니다 ... 그것은 간단하게 들릴 수 있습니다. 그러나 기억하기 힘들 기 때문에/수정하는 데 며칠이 걸렸습니다. –

관련 문제