Maison  >  Article  >  développement back-end  >  Exemple de partage de code pour implémenter la fonction de vote d'humeur en PHP

Exemple de partage de code pour implémenter la fonction de vote d'humeur en PHP

黄舟
黄舟original
2017-09-14 09:45:321364parcourir

Cet article présente principalement des exemples de la fonction de vote d'humeur de PHP (code source ci-joint), qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

lorsqu'ils parcourent la page d'actualités ou d'autres pages. Il y aura des sentiments après. lire, comme génial, calme, sauce soja, allez, tricher, etc. Laissez les lecteurs l’évaluer pour voir s’ils ressentent la même chose que les autres lecteurs. Très belle interaction !

Télécharger maintenant : mood_jb51.rar

Cet article nécessite une familiarité avec jquery, mysql et des connaissances liées à ajax, mais il n'est pas beaucoup utilisé. Cet article comporte trois fichiers : index.html, mood.php, sql.php

  • index.html, affichage de la page et demande de données ajax

  • mood.php, le fichier d'arrière-plan traite les données de la requête get et renvoie les données

  • sql.php, le fichier de base de données, stocke les informations de la base de données

Passons directement au code.

index.html

Première importation jquery


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

Lorsque le document est chargé Demandez simplement (ajax-get) les données du nombre d'électeurs


$.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);
      });
    }
  }
});

Revenez et ajoutez-le à la page Web, puis cliquez sur l'expression logique et ajax en arrière-plan


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

De cette façon, toute la réception a terminé son travail

mood.php

Tout d'abord, importez le fichier de base de données sql.php


include_once("sql.php");

Ce fichier gère le cœur de toute la fonction, le traitement de la base de données, les cookies...

1. Traitement du code pour obtenir le nombre d'électeurs


$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.


Ce fichier est très simple, il traite essentiellement de la base de données, et la logique n'est pas très compliquée. Vous pouvez descendre et regarder de plus près vous-même.

$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;
}

sql.php

Un fichier général de stockage d'informations de base de données, l'adresse IP de la base de données, le compte, le mot de passe, le nom de la base de données, etc.


Tous les codes de base ont été publiés jusqu'à présent, je vais donc les ignorer. Si vous en avez besoin, téléchargez-le et jetez-y un œil

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

Par. d'ailleurs, elle est toujours là. Il y a une base de données, merci de poster aussi le DDL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn