【问题标题】:How to update MySQL database row with a click on link?如何通过单击链接更新 MySQL 数据库行?
【发布时间】:2016-11-04 14:33:07
【问题描述】:

我有什么 具有许多行的 MySQL 数据库。它包含 ID、名称、分数和其他一些列。

显示来自该数据库的 RANDOM 项目的网站。它将在我的页面上显示所有相应的数据。

我想要什么 我希望访问我网站的人按下一个按钮,该按钮将使我的分数增加 + 1。

我的代码

update_value.php

<?php
    include ('database_conn.php');
    $rowID = $row['ID'];
    $sql2 = "UPDATE database SET Score = Score + 1 WHERE ID = '$rowID'";
    $conn->query($sql2);
?>

scripts.js

$("#vote-up-q").click(function() {
        $.ajax({
                type: "POST",
                url: "update_value.php"
            })
            location.reload();
    });

menu.php

<span class="circle-thin-yo circle-down" id="vote-down-q">
 <a href="javascript:void(0)" title="vote down">
  <i class="fa fa-angle-down"></i>
 </a>
</span>

database_conn.php 文件包含这样的 $conn:

$conn = new mysqli($servername, $username, $password, $dbname);

简单地说:有人可以点击menu.php中显示的div#vote-up-q并更新mysql值Score以前的分数 + 1。

【问题讨论】:

  • $row['ID'] 的值是多少?该值在哪里分配?
  • 从 HTTP 请求中捕获 ROW ID 的位置以及在 SQL 查询中的何处设置它?另外,使用 PDO,而不是 mysqli,你对 SQL 注入很开放!
  • 查看您的 js 控制台并通过 php 和查询检查错误。
  • 我盯着这个问题看了足够长的时间,没有回复任何 cmets 或更新的问题。当您有更多要分享的内容时,请联系我们中的一个,祝您好运;我已经留下了问题。
  • 你的问题有新答案了,看看吧!

标签: javascript php jquery mysql ajax


【解决方案1】:

如果我理解得很好,你的网页会显示一个随机用户的数据,所以,当点击upvote按钮时,这个随机用户的分数会增加。

如果是这种情况,您需要将随机用户的 ID 发送到 PHP 脚本。示例:将下一个代码复制粘贴到两个 PHP 文件中,然后在浏览器中打开“html 和 ajax 文件”:

html 和 ajax 文件

<?php
$user_id = 28; // ◄■■ RANDOM USER FROM DATABASE.
?>
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script type = "text/javascript">
function my_button ( user_id ) // ◄■■ RANDOM USER ID.
{ $.ajax( { type    : "POST",
            data    : { "my_id" : user_id }, // ◄■■ RANDOM USER ID.
            url     : "update_value.php",
            success : function ( data )
                      { alert( data );
                      },
            error   : function ( xhr )
                      { alert( "error" );
                      }
        } );
}
    </script>
  </head>
  <body>
    <button onclick="my_button('<?php echo $user_id;?>')"> <!-- ◄■■ RANDOM USER ID -->
            Upvote me!</button>
  </body>
</html>

update_value.php

<?php
    //include ('database_conn.php');
    $rowID = $_POST["my_id"]; // ◄■■ PARAMETER FROM AJAX.
    //$sql2 = "UPDATE database SET Score = Score + 1 WHERE ID = '$rowID'";
    //$conn->query($sql2);
    echo "User $rowID upvoted!";
?>

出于测试目的,我在“update_value.php”中注释了数据库行。

【讨论】:

    猜你喜欢
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 2023-04-04
    • 2011-07-27
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多