Отслеживание голосов и только 1 голос за участника - PullRequest
0 голосов
/ 15 января 2011

Я пытаюсь подсчитать голоса, когда кто-то голосует на «странице». Я думаю, что потерял себя, пытаясь понять, как отслеживать, когда участник голосует или нет. Я не могу получить код, чтобы сказать, когда участник проголосовал.

//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";}
    //}

Ответы [ 3 ]

1 голос
/ 16 января 2011

Вы делаете это слишком сложно.Используйте числовое значение для голосования, + 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 голосов
/ 15 января 2011

Ваш первый запрос недействителен, поскольку содержит два предложения WHERE.

0 голосов
/ 15 января 2011

что-то вроде этого должно работать для вас - просто замените изображение всего на код всего сущего.

PHP: Концепция системы звездного рейтинга?

...