Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在单击按钮时触发SQL查询?_Php_Mysql_Button_Increment - Fatal编程技术网

Php 在单击按钮时触发SQL查询?

Php 在单击按钮时触发SQL查询?,php,mysql,button,increment,Php,Mysql,Button,Increment,我有一个简单的PHP/MySQL计数器,它可以递增地增加SQL数据库中的值。当前,每次刷新页面时都会触发此脚本,这意味着每次刷新页面时该数字都会增加1。我想更改它,使其仅在按下按钮时增加 以下是我的PHP代码: <?php error_reporting(0); include("config.php"); // get click details based on ID $sql = "SELECT * FROM ".$SETTINGS["data_t

我有一个简单的PHP/MySQL计数器,它可以递增地增加SQL数据库中的值。当前,每次刷新页面时都会触发此脚本,这意味着每次刷新页面时该数字都会增加1。我想更改它,使其仅在按下按钮时增加

以下是我的PHP代码:

<?php

    error_reporting(0);
    include("config.php");

    // get click details based on ID
    $sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE id='1'";
    $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);

    $sql = "UPDATE ".$SETTINGS["data_table"]." SET clicks=clicks+1 WHERE id='1'";
    $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);

?>

这是我想系在上面的按钮:

<div class="content">
    <span id="button">Click Me</span>
</div>

点击我
关于我如何做到这一点有什么想法吗?谢谢

选项1(简单):

单击按钮重新加载页面:

<span id="button" onclick="javascript: location.reload();">Click Me</span>
点击我
选项2:

  • 将查询部分放在单独的文件中(例如inc.php
  • 对按钮范围的onclick事件使用AJAX调用。(可以使用JQuery)
  • 以下是jQuery AJAX的一个示例:

    <script type="text/javascript">
    <!--
    function inc_counter()
    {
    $.ajax({
        url: "inc.php",
        context: document.body
        }).done(function() {
        alert('incremented');
        });
        return false;
    }
    -->
    </script>
    
    <span id="button" onclick="javascript:return inc_counter();">Click Me</span>
    
    
    点击我
    
    提交表单,或使用ajax调用。或添加onClick javascript函数。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。您可以使用
    GET
    方法(如果作为普通的
    href
    )或将
    submit
    (POST)类型的按钮与函数结合使用,然后使用
    If(isset($\u POST['function\u button\u 1']){SQL HERE
    如果请求正在更改数据,则只能通过POST进行。GETs应该没有服务页面以外的效果。我选择了选项2,因为它看起来像我正在寻找的,但是,当我单击按钮时,增量似乎没有触发。我将上面的PHP代码放入inc.PHP中,当我单击按钮时,我在开发人员控制台中看到“GET inc.PHP 200 OK 4ms”,但它不会增加SQL数据库中的整数。在inc.PHP中,尝试打印成功/错误(mysql_error())输出。然后在警报中打印响应:.done(函数(msg){alert(msg);});