2013-12-10 3 views
-2

내 대학의 견적을 제출할 수있는 매우 기본적인 견적 웹 사이트를 만들고 있습니다. 투표는 id, quoteid, valueIP (스팸 투표 방지를 위해)이 포함 된 votes 테이블에 저장됩니다. 누군가 투표하면 quoteidvalue을 포함하는 새로운 행을 삽입합니다. 이 value은 1 또는 -1 일 수 있습니다. 특정 견적 번호가있는 모든 투표 배열을 반환하는 함수를 작성했습니다.반환 된 모든 행의 값 합치기

지금, 내가해야할 일은 합계 점수를 부여하는 모든 value 필드가 함께 추가되도록 함수를 작성하는 것입니다. 어떻게해야합니까?

답변

2

나는 당신이 말한 것처럼하지 않을 것입니다. SUM()을 사용하고 quoteid별로 그룹화하도록 쿼리를 변경하십시오. 아래 예 :

SELECT quoteid, SUM(value) total from votes GROUP BY quoteid 
+0

방금 ​​구문 오류가 있음을 알려주지 만 'SUM (action) total FROM votes WHERE quoteid =?'를 사용하려고했습니다. –

+0

전체 검색어 찾기 –

0

검색어를 모두 포함하면 더 좋습니다.

<?php 
    function getVotes($quoteId) { 
    $sql = "Select count(id) as voteup from votes where `value` = 1 and quote_id = {$quoteId} 
       union 
       Select count(id) as votedown from votes where `value` = -1 and quote_id = {$quoteId}"; 
    $result = mysql_query($sql); 
    $data = mysql_fetch_assoc($result); // haven't read while loop because we know the result is only one row 
    return $data ;//data is array with voteup and votedown keys 
    } 

참고 : PDO 또는 mysqli를 사용합니다 경우 mysql_로 기능은 더 이상 사용되지 않습니다, 내가 예를 들어 썼다.