テーブルにある各アイテムに投票/投票機能を追加しようとしています。私は現在、この実装に取り組んでいます: 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
うまくいけば、誰かがエラーを見つけることができます。お時間とご協力いただきありがとうございます。