update table_name set votes = votes + 1 where ... 某个ip投过后将其ip存起来(数据库、文件都行),每当投票的时候都要进行查询(在数据库或文件中),但让了,你在搜索的时候要注意是否是今天投的
1.获取IP 2.判断24小时内IP是否重复 3.投票
首先你得建两个表,一个table1是记录votes(投票数), 一个table2是记录投过票的,字段有id,ip,time。//加个时间的字段 当投票的时候 得先查询一下,看看同一个ip,在同一天是否投过票 $ip=$_SERVER['REMOTE_ADDR'];//获取ip $sql="select * from table2 where ip=$ip and time=".date('Ymd'); $res=$db->getRow($sql); if($res){ echo "每个人一天只能投一次"; }else{ $upsql=update table_name set votes = votes + 1 where ... 然后把数据insert into 到table2中 } 查询一下table1中votes取出来
感谢楼上几位,我现在的想法是建两个表,表1放投票数,表2放投票者的信息,主要就是ip和time。 当投票的时候先查询表2看看表2中是不是有 ip and time。如果是的话就输出每个用户一天只能投票一次。 如果没有的话就OK了,直接投票就行了。但是现在我觉得每次投票的时候都需要把表2里面所有的值都查询一边好像太浪费资源了吧。虽然这个投票系统估计也没什么流量,但是老觉得这样做不太好。各位大侠帮着优化一下吧。
某个ip投过后将其ip存起来(数据库、文件都行),每当投票的时候都要进行查询(在数据库或文件中),但让了,你在搜索的时候要注意是否是今天投的
2.判断24小时内IP是否重复
3.投票
一个table2是记录投过票的,字段有id,ip,time。//加个时间的字段
当投票的时候
得先查询一下,看看同一个ip,在同一天是否投过票
$ip=$_SERVER['REMOTE_ADDR'];//获取ip
$sql="select * from table2 where ip=$ip and time=".date('Ymd');
$res=$db->getRow($sql);
if($res){
echo "每个人一天只能投一次";
}else{
$upsql=update table_name set votes = votes + 1 where ...
然后把数据insert into 到table2中
}
查询一下table1中votes取出来
当投票的时候先查询表2看看表2中是不是有 ip and time。如果是的话就输出每个用户一天只能投票一次。
如果没有的话就OK了,直接投票就行了。但是现在我觉得每次投票的时候都需要把表2里面所有的值都查询一边好像太浪费资源了吧。虽然这个投票系统估计也没什么流量,但是老觉得这样做不太好。各位大侠帮着优化一下吧。