2011-01-15 10 views
0

私がやっていることは、誰かが「ページ」に投票したときの投票をカウントすることです。私は自分がメンバーの票決を追跡する方法を見つけようとしていないと思っています。メンバーが投票したときにそのコードを伝えることはできません。投票を追跡し、メンバー1人につき1票しか許可しない

//Generate code ID 
    $useXID = intval($_GET['id']); 
    $useXrank = $_GET['rank']; 

    //if($useXrank!=null && $useXID!=null) { 
     $rankcheck = mysql_query('SELECT member_id,code_id FROM code_votes WHERE member_id="'.$_MEMBERINFO_ID.'" AND WHERE code_id="'.$useXID.'"'); 
      if(!mysql_fetch_array($rankcheck) && $useXrank=="up"){ 
       $rankset = mysql_query('SELECT * FROM code_votes WHERE member_id="'.$_MEMBERINFO_ID.'"'); 
       $ranksetfetch = mysql_fetch_array($rankset); 
       $rankit = htmlentities($ranksetfetch['ranking']); 
       $rankit+="1"; 
       mysql_query("INSERT INTO code_votes (member_id,code_id) VALUES ('$_MEMBERINFO_ID','$useXID')") or die(mysql_error()); 
       mysql_query("UPDATE code SET ranking = '".$rankit."' WHERE ID = '".$useXID."'"); 
      } 
      elseif(!mysql_fetch_array($rankcheck) && $useXrank=="down"){ 
       $rankset = mysql_query('SELECT * FROM code_votes WHERE member_id="'.$_MEMBERINFO_ID.'"'); 
       $ranksetfetch = mysql_fetch_array($rankset); 
       $rankit = htmlentities($ranksetfetch['ranking']); 
       $rankit-="1"; 
       mysql_query("INSERT INTO code_votes (member_id,code_id) VALUES ('$_MEMBERINFO_ID','$useXID')") or die(mysql_error()); 
       mysql_query("UPDATE code SET ranking = '".$rankit."' WHERE ID = '".$useXID."'"); 
      } 
      // hide vote links since already voted 
      elseif(mysql_fetch_array($rankcheck)){$voted="true";} 
    //} 
+1

重複するコードの量と* RAW SQL QUERIES *は泣きたいです。 SQL DQL(データ問合せ言語)から一歩踏み出し、最初に構造と関係を記述します。テーブルとは何ですか?どのように関係していますか?例えば。 'code_votes'テーブルの制限は何ですか?これに 'code'はどのようにして入りますか?トランザクション/ ACIDはどのように処理されますか? –

答えて

1

あなたはそれを難し​​くしています。 -1、1 +、投票のための数値を使用して、テーブルの上にユニーク制約を施行:

ビットを拡張:

create table votes (
    pageId int references pages (pageId) 
,memberId int references members (memberId) 
,value  int check (value in (-1,1)) 
,constraint votes_unique unique (pages,members) 
) 

今、あなたは「合計(値)を選択することができます... "ユーザーが何をしているのか、ページで何が起こっているのかなどを取得します。

0

このようなものはあなたのために働くはずです。すべてのものをすべてのもののコードに置き換えてください。それは2つの節を持っているよう

PHP: Star rating system concept?

0

あなたの最初のクエリは無効です。

+0

さて、私はそれを修正しましたが、それはまだ動作していない理由を得ることができないようです。 – MikeAdams

関連する問題