2012-01-21 3 views
0

작은 투표대 제품을 사용하고 있다고 가정 해 봅시다. 값은 데이터베이스 "content"에 저장되며 행에 투표 ("count")가 포함 된 행과 함께 "rank"라는 행이 있습니다.이 값을 자동 검색하여 반복 할 필요가없는 방법은 무엇입니까? PHP에서 모든 스크립트를 통해 스크립트가 엄청나게 느려지는 이유는 무엇입니까? (정확한 테이블 구조에 따라)이 같은MySQL의 간단한 등급 시스템

답변

2

당신이 테이블

필드 항목 이 같은 구조가있는 경우 : 이름, ID, 계산, ...

당신은 간단하게 수행 할 수 있습니다 항목에

까지 투표 ID = $ ID로

UPDATE item SET count = count + 1 WHERE id='$id'; 
ID를 가진 항목에

아래로 투표 = $ ID를

UPDATE item SET count = count - 1 WHERE id='$id'; 

카운트는 총 투표 수를 저장합니다.

사용자/ip 당 두 번 이상의 투표를 피하려면 각 개별 투표를 다른 테이블에 저장하고 이전 쿼리를 보내기 전에 반복되지 않는 투표에 대해이 추가 표를 확인해야합니다.

0

뭔가 작업을해야합니다 : 자세한 내용은

UPDATE item SET rating = 
    (SELECT count(*) FROM rates WHERE type 'positive') - 
    (SELECT count(*) FROM rates WHERE type 'negative'); 

MySQL docs를 보라.