头像

PHP+jQuery+MySql实现红蓝投票功能

来源:https://www.daimasucai.com/other/24.html 代码素材管理员 2016-09-10浏览()

本文是一篇综合知识应用类文章,需要您具备PHP、jQuery、MySQL以及html和css方面的基本知识。本文《PHP+MySql+jQuery实现的“顶”和“踩”投票功能》一文基础上做了适当改进,共用了数据表,您可以先点击了解这篇文章。

程序员,你不是一个人;网站开发QQ群:  在线充值,或联系QQ 3078847178直接充值

PHP+jQuery+MySql实现红蓝投票功能
分类:首页>>PHP/Mysql>>其他 阅读次数:
查看演示 下载次数: 5

手机扫码访问:

下载资源 下载积分: 30

  HTML

  我们需要在页面中展示红蓝双方的观点,以及对应的投票数和比例,以及用于投票交互的手型图片,本例以#red和#blue分别表示红蓝双方。.redhand和.bluehand用来做手型投票按钮,.redbar和.bluebar展示红蓝双方比例调,#red_num和#blue_num展示双方投票数。

    <div class="vote"> 

        <div class="votetitle">您对Helloweba提供的文章的看法?</div> 

        <div class="votetxt">非常实用<span>完全看不懂</span></div> 

        <div class="red" id="red"> 

            <div class="redhand"></div> 

            <div class="redbar" id="red_bar"> 

                <span></span> 

                <p id="red_num"></p> 

            </div> 

        </div> 

        <div class="blue" id="blue"> 

            <div class="bluehand"></div> 

            <div class="bluebar" id="blue_bar"> 

                <span></span> 

                <p id="blue_num"></p> 

            </div> 

        </div> 

    </div> 

  PHP

  函数vote($type,$id,$ip)用来做出投票动作,$type表示投票方,$id表示投票主题的id,$ip表示用户当前ip。首先根据用户当前IP,查询投票记录表votes_ip中是否已经存在当前ip记录,如果存在,则说明用户已投票,否则更新红方或蓝方的投票数,并将当前用户投票记录写入到votes_ip表中以防重复投票。

    function vote($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 where id=".$id; 

            }else{//蓝方 

                $sql = "update votes set unlikes=unlikes+1 where id=".$id; 

            } 

            mysql_query($sql); 

             

            $sql_in = "insert 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{ 

            $arr['success'] = 0; 

            $arr['msg'] = '已经投票过了'; 

            echo json_encode($arr); 

        } 

    } 

  MySQL

  最后,贴上Mysql数据表,votes表用来记录红蓝双方的投票总数,votes_ip表则用来存放用户的投票IP记录。

    CREATE TABLE IF NOT EXISTS `votes` ( 

      `id` int(10) NOT NULL AUTO_INCREMENT, 

      `likes` int(10) NOT NULL DEFAULT '0', 

      `unlikes` int(10) NOT NULL DEFAULT '0', 

      PRIMARY KEY (`id`) 

    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8; 

     

     

    INSERT INTO `votes` (`id`, `likes`, `unlikes`) VALUES 

    (1, 30, 10); 

     

    CREATE TABLE IF NOT EXISTS `votes_ip` ( 

      `id` int(10) NOT NULL, 

      `vid` int(10) NOT NULL, 

      `ip` varchar(40) NOT NULL 

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

  再次提醒,下载的demo如果运行不了,请先检查数据库连接配置是否正确。


声明:本文为原创文章,如需转载,请注明来源daimasucai.com并保留原文链接:https://www.daimasucai.com/other/24.html
如果您觉得本文的内容对您的学习有所帮助,您可以扫描下面的二维码请我喝杯茶,感谢!
alipay转账 alipay转账 扫扫加qq群

评论(0)


温馨提示:为规范评论内容,垃圾评论一律封号...

后面还有条评论,点击查看>>