Home  >  Article  >  Backend Development  >  Example code sharing for implementing the mood voting function in PHP

Example code sharing for implementing the mood voting function in PHP

黄舟
黄舟Original
2017-09-14 09:45:321419browse

This article mainly introduces examples of PHP's mood voting function (source code attached), which has certain reference value. Interested friends can refer to it

when browsing the news page or other pages There will be feelings after reading, such as awesome, calm, soy sauce, come on, cheating, etc. Let readers rate it to see if they feel the same as other readers. Very nice interaction!

Download now: mood_jb51.rar

This article requires familiarity with jquery, mysql, and ajax-related knowledge, but it is not used much. This article has three files: index.html, mood.php, sql.php

  • ##index.html, page display and request ajax data

  • mood.php, the background file processes the data from the get request and returns the data

  • sql.php, the database file, stores the database information

Let’s jump right into the code.

index.html

First import jquery


//cdn.bootcss.com/jquery/1.7.2/jquery.min.js

Request when the document is loaded (ajax-get) Voter data


$.ajax({
  type: 'GET',
  url: 'mood.php',
  cache: false,
  data: 'id=1',
  dataType: 'json',
  error: function(){
    alert('出错了!');
  },
  success: function(json){
    if(json){
      $.each(json,function(index,array){
        var str = "<li><span>"+array[&#39;mood_val&#39;]+"</span><p class=\"pillar\" style=\"height:"+array[&#39;height&#39;]+"px;\"></p><p class=\"face\" rel=\""+array[&#39;mid&#39;]+"\"><img src=\"images/"+array[&#39;mood_pic&#39;]+"\"><br/>"+array[&#39;mood_name&#39;]+"</p></li>";
        $("#mood ul").append(str);
      });
    }
  }
});

Return and add it to the web page, then click on the expression logic and ajax to the background


$(".face").live(&#39;click&#39;,function(){
  var face = $(this);
  var mid = face.attr("rel");
  var value = face.parent().find("span").html();
  var val = parseInt(value)+1;
  $.post("mood.php?action=send",{moodid:mid,id:1},function(data){
    if(data>0){
      face.prev().css("height",data+"px");
      face.parent().find("span").html(val);
      face.find("img").addClass("selected");
    }else{
      alert(data);
    }
  });
});

In this way, the entire front desk has completed its work

mood.php

First, import the sql.php database file


include_once("sql.php");

This file handles the core of the entire function, processing databases, cookies...

1. Processing the code to obtain the number of voters



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

2. Processing voting function



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

$havemood = chk_mood($id);
if($havemood==1){
  echo "您已表达过了";exit;
}
$field = &#39;mood&#39;.$mid;
//查询是否有这个id
$result = mysql_query("select 1 from mood where id=&#39;{$id}&#39;");
$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[&#39;mood0&#39;]+$rs[&#39;mood1&#39;]+$rs[&#39;mood2&#39;]+$rs[&#39;mood3&#39;]+$rs[&#39;mood4&#39;];
    $height = round(($rs[$field]/$total)*$moodpicheight);
    echo $height;
  }else{
    echo -1;
  }
} else {
  mysql_query("INSERT INTO mood(id,mood0,mood1,mood2,mood3,mood4)VALUES (&#39;{$id}&#39;,&#39;0&#39;,&#39;0&#39;,&#39;0&#39;,&#39;0&#39;,&#39;0&#39;)");
  $query = mysql_query("update mood set ".$field."=".$field."+1 where id=".$id);
  setcookie("mood".$id, $mid.$id, time()+3600);
  echo $moodpicheight;
}

This file is very simple, basically processing the database, and the logic is not Very complicated. You can come down and take a closer look yourself.

sql.php

A general database information storage file, database IP, account, password, database name, etc.


$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");

So far, all the core codes have been posted, so I’ll skip it. If necessary, download it and take a look.


By the way, there’s another one Database, okay, please post the DDL too


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;

The above is the detailed content of Example code sharing for implementing the mood voting function in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn