Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert eine Mood-Voting-Funktion

PHP implementiert eine Mood-Voting-Funktion

墨辰丷
墨辰丷Original
2018-05-18 10:02:081523Durchsuche

In diesem Artikel werden hauptsächlich Beispiele für die Mood-Voting-Funktion von PHP vorgestellt (Quellcode im Anhang), die einen gewissen Referenzwert haben

Beim Durchsuchen der Nachrichtenseite oder anderer Seiten wird es Gefühle geben Lesen, wie „genial“, „ruhig“, „Sojasauce“, „komm schon“, „betrügen“ usw. Lassen Sie die Leser es bewerten, um zu sehen, ob es ihnen genauso geht wie den anderen Lesern. Sehr nette Interaktion!

Jetzt herunterladen: Mood_jb51.rar

Dieser Artikel erfordert Kenntnisse im Zusammenhang mit JQuery, MySQL und Ajax, wird jedoch nicht oft verwendet. Dieser Artikel enthält drei Dateien: index.html, mood.php, sql.php

  • index.html, Seitenanzeige und Anforderung von Ajax-Daten

  • mood.php, die Hintergrunddatei, verarbeitet die Daten aus der Get-Anfrage und gibt die Daten zurück

  • sql.php, die Datenbankdatei, speichert die Datenbankinformationen

Kommen wir direkt zum Code.

index.html

Erste Import-JQuery


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


Wenn das Dokument geladen ist, fordern Sie die Anzahl der Wählerdaten an (ajax-get)


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


Gehen Sie zurück und fügen Sie es dem hinzu Webseite, und klicken Sie dann einfach auf den Ausdruck Logik und Ajax in den Hintergrund


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


Auf diese Weise wird die gesamte Rezeption vervollständigt die Arbeit

mood.php

Importieren Sie zunächst die sql.php-Datenbankdatei


include_once("sql.php");


Diese Datei Was verarbeitet wird, ist der Kern der gesamten Funktion, Verarbeitung von Datenbanken, Cookies...

Verarbeitung des Codes zur Ermittlung der Wählerzahl


$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. Verarbeitung der Abstimmungsfunktion


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


Diese Datei ist sehr einfach und verarbeitet im Grunde die Datenbank. Die Logik ist nicht sehr kompliziert. Sie können vorbeikommen und selbst einen genaueren Blick darauf werfen.

sql.php

Eine allgemeine Datenbankinformationsspeicherdatei, Datenbank-IP, Konto, Passwort, Datenbankname usw.


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


Bisher wurde der gesamte Kerncode veröffentlicht, also überspringe ich ihn. Wenn Sie ihn brauchen, laden Sie ihn herunter und werfen Sie einen Blick darauf

Übrigens gibt es eine andere Datenbank, bitte posten Sie auch die DDL


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;


Verwandte Empfehlungen:

Beispiele für die Mood-Voting-Funktion von PHP teilen

Beispiele für die Mood-Voting-Funktion von PHP teilen

PHP+jQuery+Ajax + Stimmungsvoting für MySQL-Artikel

Das obige ist der detaillierte Inhalt vonPHP implementiert eine Mood-Voting-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn