PHP发表心情投票功能示例(附源码)

前端之家收集整理的这篇文章主要介绍了PHP发表心情投票功能示例(附源码)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

当浏览新闻页面或者其它页面的时候会有阅读后的感受,比如给力、淡定、打酱油、加油、坑爹等等的表情。让读者打分,看看自己的感受是否与其他读者一样。很不错的交互!

立即下载:

本文需要熟悉jquery,MysqL,ajax相关的知识,不过用的不多。本文有三个文件:index.html,mood.PHP,sql.PHP

直接进入代码吧。

index.html

首先导入jquery

当文档载入完毕就请求(ajax-get)投票人数数据

PHP',cache: false,data: 'id=1',dataType: 'json',error: function(){ alert('出错了!'); },success: function(json){ if(json){ $.each(json,function(index,array){ var str = "
  • "+array['mood_val']+"
    "+array['mood_name']+"
  • "; $("#mood ul").append(str); }); } } });

    返回就添加到网页里,然后就点击表情逻辑,也ajax到后台

    0){ face.prev().css("height",data+"px"); face.parent().find("span").html(val); face.find("img").addClass("selected"); }else{ alert(data); } }); });

    这样整个前台就完成了工作

    mood.PHP

    首先要导入sql.PHP数据库文件

    PHP;"> include_once("sql.PHP");

    这个文件处理的是整个功能的核心,处理数据库,cookies...

    1.处理获取投票人数代码

    PHP;"> $mname = explode(',',$moodname);//心情说明 $num = count($mname); $mpic = explode(',$moodpic);//心情图标 $id = (int)$_GET['id']; $query = MysqL_query("select * from mood where id=$id"); $rs = MysqL_fetch_array($query); if($rs){ $total = $rs['mood0']+$rs['mood1']+$rs['mood2']+$rs['mood3']+$rs['mood4']; for($i=0;$i<$num;$i++){ $field = 'mood'.$i; $m_val = intval($rs[$field]); $height = 0; //柱图高度 if($total && $m_val){ $height=round(($m_val/$total)*$moodpicheight); //计算高度 } $arr[] = array( 'mid' => $i,'mood_name' => $mname[$i],'mood_pic' => $mpic[$i],'mood_val' => $m_val,'height' => $height ); } echo json_encode($arr); } else { for($i=0;$i<$num;$i++){ $arr[] = array( 'mid' => $i,'mood_val' => 0,'height' => 0 ); } echo json_encode($arr); }

    2.处理投票功能

    PHP;"> $id = (int)$_POST['id']; $mid = (int)$_POST['moodid']; if($mid<0 || !$id){ echo "错误"; exit; }

    $havemood = chk_mood($id);
    if($havemood==1){
    echo "您已表达过了";exit;
    }
    $field = 'mood'.$mid;
    //查询是否有这个id
    $result = MysqL_query("select 1 from mood where id='{$id}'");
    $row = MysqL_fetch_array($result);
    if(is_array($row)){
    $query = MysqL_query("update mood set ".$field."=".$field."+1 where id=".$id);
    if($query){
    setcookie("mood".$id,$mid.$id,time()+3600);
    $query2 = MysqL_query("select from mood where id=$id");
    $rs = MysqL_fetch_array($query2);
    $total = $rs['mood0']+$rs['mood1']+$rs['mood2']+$rs['mood3']+$rs['mood4'];
    $height = round(($rs[$field]/$total)
    $moodpicheight);
    echo $height;
    }else{
    echo -1;
    }
    } else {
    MysqL_query("INSERT INTO mood(id,mood0,mood1,mood2,mood3,mood4)VALUES ('{$id}','0','0')");
    $query = MysqL_query("update mood set ".$field."=".$field."+1 where id=".$id);
    setcookie("mood".$id,time()+3600);
    echo $moodpicheight;
    }

    这个文件很简单,基本都是在处理数据库,逻辑也不是很复杂。可以自己下来细心看。

    sql.PHP

    一个通用的数据库信息储存文件,数据库的ip、帐号、密码、数据库名等等

    PHP;"> $host="localhost"; $db_user="root"; $db_pass=""; $db_name="demo"; $timezone="Asia/Shanghai";

    $link=MysqL_connect($host,$db_user,$db_pass);
    MysqL_select_db($db_name,$link);
    MysqL_query("SET names UTF8");

    header("Content-Type: text/html; charset=utf-8");

    到目前所有的核心代码都也贴出,大神就跳过,如果有需要就下载来看一看

    对了,还有一个数据库,行吧DDL也贴出来

    sql;"> CREATE TABLE `mood` ( `id` tinyint(5) NOT NULL,`mood0` int(9) unsigned NOT NULL,`mood1` int(9) unsigned NOT NULL,`mood2` int(9) unsigned NOT NULL,`mood3` int(9) unsigned NOT NULL,`mood4` int(9) unsigned NOT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

    原文链接:https://www.f2er.com/php/16815.html

    猜你在找的PHP相关文章