主要流程:
点赞—>判断当前设备IP是否对当前文章有过点赞记录—>若有记录,弹出提示“已经赞过了”;
若无记录,当前文章点赞数+1,并在记录设备IP点赞记录的表中插入信息。
文章表 article 必不可少的字段:article_id(必须设置为自增), cat_id, praise
图文表 image_article 必不可少的字段:article_id(必须设置为自增), cat_id, praise
设备IP点赞记录表 client_ip 必不可少的字段:id(必须设置为自增), article_id, cat_id, ip
HTML部分:
({$sentence.praise})
JS部分( praise.js ):
$(function (){
$(".praise").click(function () {
var praise = $(this);
var article_id = praise.attr("rel");//获取HTML页面POST过来的article_id
var cat_id = praise.attr("rev");//获取HTML页面POST过来的cat_id
$.ajax({
type: "POST",
url: "praise.php",
data: "article_id=" + article_id + "&cat_id=" + cat_id,//数据拼接
cache: false,//不缓存此页面
success: function (data) {
praise.html(data);//显示data并局部刷新
},
error: function () {
alert("error");
}
});
});
});
PHP部分( praise.php ):
<?php
$connect = mysql_connect("数据库地址","数据库用户名","数据库密码");//链接数据库
if (!$connect){die('Could not connect: ' . mysql_error());}
mysql_select_db("数据库名称",$connect);//选择数据库
$ip = $_SERVER["REMOTE_ADDR"];//获取终端IP
$article_id = $_POST['article_id'];//获取article_id
$cat_id = $_POST['cat_id'];//获取cat_id
if (!isset($article_id) || empty($article_id) & !isset($cat_id) || empty($cat_id)) exit;//检测变量是否设置
$look = "select ip from client_ip where article_id='$article_id' and cat_id='$cat_id' and ip='$ip'";
$ip_look = mysql_query($look, $connect); //查询client_ip表中是否存在当前终端IP
$count = mysql_num_rows($ip_look); //返回查询结果的记录数目
if ($count == 0) { //如果没有记录
$up_praise = "update article set praise=praise+1 where article_id='$article_id' and cat_id='$cat_id'";
$result = mysql_query($up_praise, $connect); //更新文章点赞数
$up_img_praise = "update image_article set praise=praise+1 where article_id='$article_id' and cat_id='$cat_id'";
$result = mysql_query($up_img_praise, $connect); //更新图文点赞数
$entry_in = "insert into client_ip (article_id,cat_id,ip) values ('$article_id','$cat_id','$ip')";
mysql_query($entry_in, $connect); //写入数据
} else {
echo "<script>alert('已经赞过了');</script>";
}
$new_praise = "select praise from article where article_id='$article_id' and cat_id='$cat_id'";
$look_new_praise = mysql_query($new_praise, $connect);//查询更新后的文章表点赞数
$new_img_praise = "select praise from image_article where article_id='$article_id' and cat_id='$cat_id'";
$look_new_img_praise = mysql_query($new_img_praise, $connect);//查询更新后的图文表点赞数
if ($arr = mysql_fetch_assoc($look_new_praise)) {
$transform_arr[] = $arr;//将查询到的article表的prise转换成数组
} elseif ($arr = mysql_fetch_assoc($look_new_img_praise)) {
$transform_arr[] = $arr;//将查询到的image_article表的prise转换成数组
}
echo '(' . $transform_arr[0]['praise'] . ')';//打印数组值
mysql_close($connect);//关闭数据库