0

テーブルにある各アイテムに投票/投票機能を追加しようとしています。私は現在、この実装に取り​​組んでいます: www.technabled.com/2009/02/reddit-style-voting-with-php-mysql-and.html

しかし、それは私にはうまくいきません。アクションが実行されると、常に「 FAILED! 」が返され、何が間違っているのかわかりません。

これが私のvotes.phpページの中身です。

function getAllVotes($id)
    {
    $votes = array();
    $q = "SELECT * FROM cover WHERE id='$id' ";
    $r = mysql_query($q) or die("Error: ". mysql_error(). " with query ". $q);
    if(mysql_num_rows($r)==1) {

        $row = mysql_fetch_assoc($r);
        $votes[0] = $row['votes_up'];
        $votes[1] = $row['votes_down'];
        }
    return $votes;
    }

function getEffectiveVotes($id)
    {
    /**
    Returns an integer
    **/
    $votes = getAllVotes($id);
    $effectiveVote = $votes[0] - $votes[1];
    return $effectiveVote;
    }

$id = $_POST['id'];
$action = $_POST['action'];

//get the current votes
$cur_votes = getAllVotes($id);

//ok, now update the votes

if($action=='vote_up') //voting up
{
    $votes_up = $cur_votes[0]+1;
    $q = "UPDATE cover SET votes_up = $votes_up WHERE id = $id";
}
elseif($action=='vote_down') //voting down
{
    $votes_down = $cur_votes[1]+1;
    $q = "UPDATE cover SET votes_down = $votes_down WHERE id = $id";
}

$r = mysql_query($q);
if($r) //voting done
    {
    $effectiveVote = getEffectiveVotes($id);
    echo $effectiveVote." votes";
    }
elseif(!$r) //voting failed
    {
    echo "Failed!";
    }

重要な場合は、使用される列のテーブル構造を次に示します。

votes_upおよびvotes_down :
タイプ: int(11)/ Null: No/ デフォルト:0

column id :
Type: int(8)/ Null: No/ Extra:AUTO_INCREMENT

そして、パラメーターを使用してチェックを行います:
site.com/votes.php?action=vote_up&id=123

うまくいけば、誰かがエラーを見つけることができます。お時間とご協力いただきありがとうございます。

4

0 に答える 0