include_once("connect.php");//连接数据库 $action = $_GET['action']; $id = 1; $ip = get_client_ip();//获取ip if($action=='like'){//顶 likes(1,$id,$ip); }elseif($action=='unlike'){//踩 likes(0,$id,$ip); }else{ echo jsons($id); }
函数likes()用来处理“顶”和“踩”投票模块,首先是判断用户IP是否已经投票过了,如果已经投票则直接返回相应提示,如果用户IP没有投票记录则更新votes表,将对应的投票数加1,然后向votes_ip表中插入该用户的IP记录,如果操作成功,则调用jsons()输出投票后的投票数和所占百分比等数据,否则输入操作失败的提示信息。
function likes($type,$id,$ip){ $ip_sql=mysql_query("select ip from votes_ip where vid='$id' and ip='$ip'"); $count=mysql_num_rows($ip_sql); if($count==0){//还没有顶过 if($type==1){//顶 $sql = "update votes set likes=likes+1 whereupdate votes set unlikes=unlikes+1 whereinsert into votes_ip (vid,ip) values ('$id','$ip')"; mysql_query($sql_in); if(mysql_insert_id()>0){ echo jsons($id); }else{ $arr['success'] = 0; $arr['msg'] = '操作失败,请重试'; echo json_encode($arr); } }else{ $msg = $type==1?'您已经顶过了':'您已经踩过了'; $arr['success'] = 0; $arr['msg'] = $msg; echo json_encode($arr); } }
函数jsons()用来读取votes表中相应id的投票数,并计算百分比,最后将这些信息以json格式输出,供前端页面使用。
function jsons($id){ $query = mysql_query("select * from votes where赞"、同意和反对评论、投票系统等场景中,运用了Ajax原理实现的前后端交互功能。do.php中还有个函数get_client_ip()用来获取用户真实IP。
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。
您可能感兴趣的文章: