欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php大數(shù)據(jù)點贊功能,php大數(shù)據(jù)點贊功能在哪

求PHP文章點贊實現(xiàn)原理 下面有具體說明

你好!

創(chuàng)新互聯(lián)建站專注于津南網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供津南營銷型網(wǎng)站建設(shè),津南網(wǎng)站制作、津南網(wǎng)頁設(shè)計、津南網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造津南網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供津南網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

你可以將id放到被循環(huán)的一個div里面,設(shè)置成屬性,或者加入到隱藏域中,點贊時候,你就可以獲取到里面的值了,

如有疑問,請追問。

php用數(shù)據(jù)庫怎么實現(xiàn)贊功能?

就應(yīng)該數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲,安全!贊功能很簡單,既然是要對文章做功能,那么互動角色就是會員,考慮一個問題,會員需要不需要登錄才能點贊,如果不需要登錄也可以點贊,你需要有個匿名會員。

那么表方面三個:一個文章表,一個贊表,一個會員表

數(shù)據(jù)存儲:

會員點擊了贊,相應(yīng)的數(shù)據(jù)存到贊的表里面,這個三個表怎么關(guān)聯(lián)的呢?其核心是贊表,這個表里面存有文章的id號和會員的id號,形成關(guān)系。

數(shù)據(jù)讀取:

文章內(nèi)容讀取時候,根據(jù)文章的id,從贊的表調(diào)取相關(guān)數(shù)據(jù)統(tǒng)計,ok。

【新手求助】PHP點贊功能,急!!!

html:

head

script?src="common/js/jquery.js"?type="text/javascript"/script

script?language="JavaScript"?type="text/javascript"

jQuery(function($)?{

//這兩個是鼠標(biāo)放上去的效果

$(".zhan").hover(function(){

$(this).children("b").toggle();

});?

$(".cai").hover(function(){

? $(this).children("b").toggle();

});?

});?

/script

script?type="text/javascript"

!--這兩個點擊事件可以改進(jìn)的,因為事件問題,所以就弄了兩個點擊事件

$(document).ready(function(e)?{

//點贊(給力)

$('.zhan').click(function(){

var?zhan=$(this);

var?left?=?parseInt($(this).offset().left)+10,?top?=??parseInt($(this).offset().top)-10,?obj=$(this);

$(this).append('div?id="zhan"b+1\/b/\div');

$('#zhan').css({'position':'absolute','z-index':'1',?'color':'#C30','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){

$(this).fadeIn('fast').remove();

var?Num?=?parseInt(obj.find('span').text());

Num++;

obj.find('span').text(Num);

});

$.ajax({

url:"ajax.php?action=zan",

type:"post",

data:"answer_id="+$(this).attr("alt"),

success:function(datas){

zhan.unbind('click');

zhan.parent().parent().siblings().children().children().unbind('click');

zhan.parent().parent().siblings().children().children().attr("class","evaluate-inner");

zhan.attr("class","evaluate-inner");

}

});

});

//踩(不給力)

$('.cai').click(function(){

var?cai=$(this);

var?left?=?parseInt($(this).offset().left)+10,?top?=??parseInt($(this).offset().top)-10,?obj=$(this);

$(this).append('div?id="cai"b-1\/b/\div');

$('#cai').css({'position':'absolute','z-index':'1',?'color':'#7DAAD5','left':left+'px','top':top+'px'}).animate({top:top-10,left:left+10},'slow',function(){

$(this).fadeIn('fast').remove();

var?Num?=?parseInt(obj.find('span').text());

Num--;

obj.find('span').text(Num);

});

$.ajax({

url:"ajax.php?action=cai",

type:"post",

data:"answer_id="+$(this).attr("alt"),

success:function(datas){

cai.unbind('click');

cai.parent().parent().siblings().children().children().unbind('click');

cai.parent().parent().siblings().children().children().attr("class","evaluate-inner");

cai.attr("class","evaluate-inner");

}

});

});

});

//--

/script

/head

body

!--給力開始--

span?data-evaluate="0"?id="evaluate-1908165795"?class="evaluate"?alog-action="qb-zan-btn"?span??class="evaluate-outer"

!-----判斷對應(yīng)的回答的id是否在自己創(chuàng)建的存儲贊和踩數(shù)據(jù)的php文件,如果贊或者踩存在一個的話就不能再單擊----

span?class="evaluate-inner?{if?$answer_datas.ans_id|in_array:$zan_list?or?$answer_datas.ans_id|in_array:$cai_list/}{else/}zhan{/if/}"?alt="{$answer_datas.ans_id/}"?b??style="display:none"?class="evaluate-tip?evaluate-num-fixed"給力/b?b??class="evaluate-num?evaluate-num-fixed"?span{$answer_datas.goods/}/span/b?/span?/span?/span

!--不給力開始--

span?data-evaluate="0"?id="evaluate-bad-1908165795"?class="evaluate?evaluate-bad"?alog-action="qb-evaluate-outer"?span?class="evaluate-outer"?span?class="evaluate-inner?{if?$answer_datas.ans_id|in_array:$zan_list?or?$answer_datas.ans_id|in_array:$cai_list/}{else/}cai{/if/}"?alt="{$answer_datas.ans_id/}"?b??style="display:?none;"?class="evaluate-tip?evaluate-num-fixed"不給力/b?b??class="evaluate-num?evaluate-num-fixed"?style="display:?inline-block;"span{$answer_datas.bads/}/span/b?/span?/span?/span

/div

/div

!--評論回答開始--

/body

/html

php

?php

$action=$_GET['action'];//獲取get方式傳過來的action

require_once("array/ovovsys_zan.php");

switch($action){

case?'detail':

/*****贊開始****/

$zan_list?=?json_decode(str_replace("'",'"',$zan_json),true);

$zan_lists=array();

foreach($zan_list?as?$key=$value){

if($value['uid']==$uid){

? $zan_lists[]=$value['answer_id'];

}

}

$smarty-assign('zan_list',$zan_lists);//查詢當(dāng)前登錄的會員的uid對應(yīng)的點贊的回答

/*****贊結(jié)束****/

/*****踩開始****/

$cai_list?=?json_decode(str_replace("'",'"',$cai_json),true);

$cai_lists=array();

foreach($cai_list?as?$key=$value){

if($value['uid']==$uid){

? $cai_lists[]=$value['answer_id'];

}

}

$smarty-assign('cai_list',$cai_lists);//查詢當(dāng)前登錄的會員的uid對應(yīng)的踩的回答

/*****踩結(jié)束****/

$smarty-display('自己的靜態(tài)頁面');

exit();

break;

}

?

ajax

?php?

require_once("array/ovovsys_zan.php");//這里引用array文件夾中的數(shù)組文件

$action=trim($_GET['action']);

if(empty($action)){

echo?'font?color=red參數(shù)錯誤!/font';exit();

}

switch($action){

?case?'zan'://點贊(給力)

//$zan_json是數(shù)組文件中設(shè)置的數(shù)組變量,存的是json數(shù)據(jù)----1

$zan_array?=?json_decode(str_replace("'",'"',$zan_json),true);

//獲取當(dāng)前的會員的uid-----2

$user_answer['uid']=$uid;

//獲取對應(yīng)的贊的回答的id----2

$user_answer['answer_id']=$_POST['answer_id'];

//將會員的uid和答案的id一塊的數(shù)組放到指定的數(shù)組中----3

$zan_array[]=$user_answer;

$config_path?=?'shuzu/ovovsys_zan.php';

if(!file_exists($config_path)){

$Base-ErrorMsg('文件錯誤:shuzu/ovovsys_zan.php?不存在!');exit();

}

//將指定的數(shù)組轉(zhuǎn)換成json數(shù)據(jù),并且將雙引號轉(zhuǎn)換成單引號,不然放到數(shù)組文件中后會出錯----4

$zan_new_json?=?str_replace('"',"'",json_encode($zan_array));

$fp?=?@fopen($config_path,'r+');

if(!$content?=?@fread($fp,filesize($config_path))){

$Base-ErrorMsg('無法讀取shuzu/ovovsys_zan.php文件!');exit();

}

//執(zhí)行替換,將數(shù)組文件中對應(yīng)的json數(shù)據(jù)----5

$content?=?str_replace("\$zan_json?=?\"{$zan_json}\"","\$zan_json?=?\"{$zan_new_json}\"",$content);

$fp?=?@fopen($config_path,'w+');?

@fwrite($fp,$content);?

//修改對應(yīng)的數(shù)據(jù)表中的數(shù)據(jù)----5

$Db-ThisQuery("update?`".$db_prefix."ask_answers`?set?`goods`=`goods`+1?where?`ans_id`=".$user_answer['answer_id']."");

exit();

break;

?case?'cai'://踩(不給力)

$cai_array?=?json_decode(str_replace("'",'"',$cai_json),true);

$user_answer['uid']=$uid;

$user_answer['answer_id']=$_POST['answer_id'];

$cai_array[]=$user_answer;

$config_path?=?'shuzu/ovovsys_zan.php';

if(!file_exists($config_path)){

$Base-ErrorMsg('文件錯誤:shuzu/ovovsys_zan.php?不存在!');exit();

}

$cai_new_json?=?str_replace('"',"'",json_encode($cai_array));

$fp?=?@fopen($config_path,'r+');

if(!$content?=?@fread($fp,filesize($config_path))){

$Base-ErrorMsg('無法讀取shuzu/ovovsys_zan.php文件!');exit();

}

$content?=?str_replace("\$cai_json?=?\"{$cai_json}\"","\$cai_json?=?\"{$cai_new_json}\"",$content);

$fp?=?@fopen($config_path,'w+');?

@fwrite($fp,$content);?

$Db-ThisQuery("update?`".$db_prefix."ask_answers`?set?`bads`=`bads`-1?where?`ans_id`=".$user_answer['answer_id']."");

exit();

break;

}

?

對應(yīng)的數(shù)據(jù)文件(因為創(chuàng)建數(shù)據(jù)庫時沒有創(chuàng)建踩和贊的再斷,所以這里就用php文件存變量的方式保存了一下答案對應(yīng)的贊和踩的數(shù)據(jù),其中包含用戶的id和答案的id):

?php

$zan_json?=?"";

$cai_json?=?"";

?

你沒看錯,就是兩個變量

Php點贊效果的制作代碼+解析

數(shù)據(jù)庫設(shè)計

先準(zhǔn)備兩張表,pic表保存的是圖片信息,包括圖片對應(yīng)的名稱、路徑以及圖片“贊”總數(shù),pic_ip則記錄用戶點擊贊后的IP數(shù)據(jù)。

CREATE?TABLE?IF?NOT?EXISTS?`pic`?(?

`id`?int(11)?NOT?NULL?AUTO_INCREMENT,?

`pic_name`?varchar(60)?NOT?NULL,?

`pic_url`?varchar(60)?NOT?NULL,?

`love`?int(11)?NOT?NULL?DEFAULT?'0',?

PRIMARY?KEY?(`id`)?

)?ENGINE=MyISAM??DEFAULT?CHARSET=utf8;?

CREATE?TABLE?IF?NOT?EXISTS?`pic_ip`?(?

`id`?int(11)?NOT?NULL?AUTO_INCREMENT,?

`pic_id`?int(11)?NOT?NULL,?

`ip`?varchar(40)?NOT?NULL,?

PRIMARY?KEY?(`id`)?

)?ENGINE=MyISAM??DEFAULT?CHARSET=utf8

index.php

在index.php中,我們通過PHP讀取pic表中的圖片信息并展示出來,結(jié)合CSS,提升頁面展示效果。

?php?

include_once("connect.php");?

$sql?=?mysql_query("select?*?from?pic");?

while($row=mysql_fetch_array($sql)){?

$pic_id?=?$row['id'];?

$pic_name?=?$row['pic_name'];?

$pic_url?=?$row['pic_url'];?

$love?=?$row['love'];?

??

liimg?src="images/?php?echo?$pic_url;?"?alt="?php?echo?$pic_name;?"pa?href="#"??

title="贊"class="img_on"?rel="?php?echo?$pic_id;?"?php?echo?$love;?/a/p/li?

?php?}?

CSS中,我們將定義鼠標(biāo)滑向和離開紅心按鈕的動態(tài)效果,并定位按鈕的位置。

.list{width:760px;?margin:20px?auto}?

.list?li{float:left;?width:360px;?height:280px;?margin:10px;?position:relative}?

.list?li?p{position:absolute;?top:0;?left:0;?width:360px;?height:24px;?line-height:24px;??

background:#000;?opacity:.8;filter:alpha(opacity=80);}?

.list?li?p?a{padding-left:30px;?height:24px;?background:url(images/heart.png)?no-repeat??

4px?-1px;color:#fff;?font-weight:bold;?font-size:14px}?

.list?li?p?a:hover{background-position:4px?-25px;text-decoration:none}

jQuery代碼

當(dāng)用戶點擊自己喜歡的圖片上的紅心按鈕時,向后臺love.php發(fā)送ajax請求,請求響應(yīng)成功后,更新原有的數(shù)值

$(function(){?

$("p?a").click(function(){?

var?love?=?$(this);?

var?id?=?love.attr("rel");?//對應(yīng)id?

love.fadeOut(300);?//漸隱效果?

$.ajax({?

type:"POST",?

url:"love.php",?

data:"id="+id,?

cache:false,?//不緩存此頁面?

success:function(data){?

love.html(data);?

love.fadeIn(300);?//漸顯效果?

}?

});?

return?false;?

});?

});

love.php

后臺love.php接收前端的ajax請求,根據(jù)提交的圖片id值,查找IP表中是否已有該用戶ip的點擊記錄,如果有則告訴用戶已“贊過了”,反之,則進(jìn)行一下操作:

1、更新圖片表中對應(yīng)的圖片love字段值,將數(shù)值加1。

2、將該用戶IP信息寫入到pic_ip表中,用以防止用戶重復(fù)點擊。

3、獲取更新后的贊值,即贊該圖片的用戶總數(shù),并將該總數(shù)輸出給前端頁面。

include_once("connect.php");?//連接數(shù)據(jù)庫?

$ip?=?get_client_ip();?//獲取用戶IP?

$id?=?$_POST['id'];?

if(!isset($id)?||?empty($id))?exit;?

$ip_sql=mysql_query("select?ip?from?pic_ip?where?pic_id='$id'?and?ip='$ip'");?

$count=mysql_num_rows($ip_sql);?

if($count==0){?//如果沒有記錄?

$sql?=?"update?pic?set?love=love+1?where?id='$id'";?//更新數(shù)據(jù)?

mysql_query(?$sql);?

$sql_in?=?"insert?into?pic_ip?(pic_id,ip)?values?('$id','$ip')";?//寫入數(shù)據(jù)?

mysql_query(?$sql_in);?

$result?=?mysql_query("select?love?from?pic?where?id='$id'");?

$row?=?mysql_fetch_array($result);?

$love?=?$row['love'];?//獲取贊數(shù)值?

echo?$love;?

}else{?

echo?"贊過了..";?

}

我上傳的附件中 數(shù)據(jù)庫SQL 你可以直接建立test 數(shù)據(jù)庫UTF8編碼的,然后把SQL文件導(dǎo)入進(jìn)去。修改一下connect.php中數(shù)據(jù)庫的連接信息即可。

名稱欄目:php大數(shù)據(jù)點贊功能,php大數(shù)據(jù)點贊功能在哪
文章來源:http://chinadenli.net/article37/dsgossj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)建站公司企業(yè)建站商城網(wǎng)站微信小程序服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)