单击计数器在PHP和MySql

时间:2018-07-23 04:27:33

标签: php mysql database click counter

如果有人单击clickme div,则计数器在数据库中增加。当前,当页面刷新时,计数器会增加。

<div class="Hello">Click Me</div>    

<?php 
$find_counts = mysqli_query($conn, "SELECT * FROM ad_section");
 while($row = mysqli_fetch_assoc($find_counts)){
  $current_counts = $row['no_of_clicks'];
  $new_count = $current_counts + 1;
  $update_count = mysqli_query($conn, "UPDATE `ad_section` SET `no_of_clicks`= $new_count");
 }
?>

2 个答案:

答案 0 :(得分:1)

好的...所以我将以简化的实用方式帮助您了解AJAX是什么。.因为一旦您了解了AJAX ..您将能够解决此问题以及许多其他问题。

AJAX并非“语言”或“技术”。它只是浏览器与服务器交互方式的升级。

更早(在AJAX之前,比AJAX早得多),当浏览器必须从服务器请求数据/页面时,它必须刷新页面或请求整个新页面..并将其显示在新窗口中。但是它绝对没有办法在“后台” ..然后更新当前显示的HTML页面而没有任何干扰。

这是AJAX解决的问题。

所以现在..通过Javascript或Jquery ..(同样的东西)..您可以向服务器(到任何Web服务器上的任何端点)发送带有数据的请求...以及服务器。能够读取您发送的数据,以任何方式处理它,并以数据形式返回结果。

传入和传出的数据均采用JSON(Javascript对象表示法)..的格式,只是编码数据和数组的一种方式

因此,您发送JSON,服务器将向您返回JSON或错误页面(404等。)

魔术发生了...

您的页面..从服务器接收回结果之后..仍在发送请求的同一函数上执行...将能够打开结果..并使用Javascript / Jquery / DOM操作。 。将结果插入当前的HTML页面或执行任何新操作..例如,显示警报,重定向,设置动画等。

这就是它的工作方式:

想象一下,您获得了一个DIV,单击该按钮应在服务器上设置数据更新,然后从服务器获取结果并刷新自身。

   <div id='clickme'>People clicked ... <span id='howmany'>1</span></div>

<script>

//Not accurate code, I'm just writing from what I remember .. jquery 

$('#clickme').click(function() {
 //event captured on click on 'click me'

 var nothing = ''; //there is no data to be sent, really.. because we will be getting the update from the server on how many people have clicked it.. 
 //AJAX NOW... //sending a post request
 $.post(
 'https://mywebsite/index.php/incrementMe',
 {data:nothing},
 function(data) 
 {
   //this is the function that will receive in its data the result back from the web-server function incrementMe
  var result = JSON.parse(data); //parsing the JSON into javascript object/array

  $('#howmany').html(result['updatedInfo']); //updatedInfo is the variable within the result that was sent back from the server.. which I then.. using DOM manipulation, plug it back into the span ID

}
);
//End of AJAX request... you didn't have to refresh the page..

</script>

在服务器上..您将具有以下内容:(编写PHP YII样式)

public function actionincrementMe()
{
  $data = json_decode($_POST['data']); //got the posted variable and decoded using a PHP function .. to get a PHP array/object
  //well in fact, you don't even need this.. because.. there is no info coming to you from the front end .. but if you had, then this is how you'd receive it.. 

 $newnumber = SQL to find out latest number + 1;

 print json_encode($newnumber); //this is the function that will just answer back the front-end with a json formated data point..which is the variable new number..which you would then have received in the javascript function.

}

答案 1 :(得分:-1)

其中一种方法是这样进行(仅包括我已包含的步骤)

-创建一个具有图片ID的表格,然后点击计数器
-在图片点击或div点击上实现一个功能(如果还有更多图片,则可以使用通用的图片点击功能
-在函数内部使用Ajax实现计数增加功能