我正在开发一个名为Poll-lite的插件。我希望用户每次投票只投票一次,我这样做是通过获取IP地址。我有以下代码。
$ip = $_SERVER['REMOTE_ADDR'];
$thequery = "SELECT COUNT(*) AS total FROM `$pollresult_table_name` WHERE ip = ".$ip;
$res = $wpdb->get_results( $thequery );
if ( $res[0]->total > 0 ) {
$personip = $res[0]->total;
echo "You may vote only once in 24 hours";
} else {
$query = "INSERT INTO `$pollresult_table_name` VALUES(NULL, '$id', '".$_POST['merlic_poll_vote']."', NULL, '".$ip."', NOW())";
$wpdb->query($query);
}
它的作用是获取IP地址并在数据库中检查该IP是否已经存在,如果它已经存在,它将返回“已经投票”但是如果它还没有,那么它将插入数据库中的用户及其IP的答案,以便下次同一用户投票时,他不能再投票,因为IP已经在数据库中注册。我的问题是它没有在我的if-else中读取我的情况。什么可能出错?
答案 0 :(得分:0)
” $ IP;
不应该是='“。$ ip。”'
也使用$ rows = mysql_num_rows($ result); 检查你的mysql查询返回的行数。 大于零表示找到匹配,否则为无。
if($rows>0)
{
do condition
}
else
{
}