PHP mySQL 数据库更新值不起作用

标签 php mysql sql-update

我想更新数据库中的值。

这是我在 index.php 代码中添加向您的帐户添加积分的按钮的部分:

<div class="content">
    <ul class="grid points-grid">
        <li class="item">
            <div class="cell-content section-content"><div class="points-add">
                <div class="banner-wrap">
                    <a href="#" type="submit" class="btn" name="addpoints">Add 10 points</a>
            </div>
      </div>
</div>

这是我添加按钮功能并在 functions.php 中添加点的部分:

if (isset($_POST['addpoints'])) {
    mysql_query("UPDATE users SET points += '10' WHERE 1");
}

我尝试寻找解决方案,但没有找到有效的解决方案。 感谢您的帮助。

最佳答案

@marakusa 我不知道你想用你向我们展示的这段代码来完成什么,但如果我明白一些事情,就是你想更新数据库中的用户点,我会告诉你我会如何做简单地讲一下。

首先,如果您不注意使用 javascript (ajax),我不知道为什么您会想要使用 a 标签。所以我将其更改为常规 HTML 表单,就像 @bistrovs 建议的那样

<div class="content">
    <ul class="grid points-grid">
        <li class="item">
            <div class="cell-content section-content">
              <div class="points-add">
                  <div class="banner-wrap">
                    <form method="POST" action="">
                      <button type="submit" class="btn" name="addpoints">
                        Add 10 points
                      </button>
                    </form>
                  </div>
              </div>
            </div>
        </li>
      </ul>
</div>

然后在我包含在表单所在同一页面中的functions.php文件中,我通过运行此sql查询来更新用户点:

if(isset($_POST['addpoints']) {

    $query = "UPDATE users SET points = points + 10 WHERE user_id = '".$userid."'";
    mysql_query($query) or die(mysql_error());
}

希望这对您有用

<小时/>

已更新

数据库结构

-- Base de données :  `demo`

-- Structure de la table `users`

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `points` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

-- Contenu de la table `users`

INSERT INTO `users` (`id`, `firstname`, `lastname`, `email`, `points`) VALUES
(1, 'John', 'Doe', 'john@doe.com', 0),
(2, 'Jane', 'Doe', 'jane@doe.com', 0);

functions.php

<?php
    $link = mysqli_connect("localhost", "root", "", "demo");

    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
?>

index.php

<?php 

include 'functions.php';

if(isset($_POST['addpoints'])) {

    $query = "UPDATE users SET points = points + 10 WHERE id = 1";

    $result = mysqli_query($link, $query);

    if ($result) {

        echo "user points updated";
    }

    mysqli_close($link);
}
?>

<div class="content">
    <ul class="grid points-grid">
        <li class="item">
            <div class="cell-content section-content">
              <div class="points-add">
                  <div class="banner-wrap">
                    <form method="POST" action="">
                      <button type="submit" class="btn" name="addpoints">
                        Add 10 points
                      </button>
                    </form>
                  </div>
              </div>
            </div>
        </li>
      </ul>
</div>

关于PHP mySQL 数据库更新值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46630616/

相关文章:

mysql - 如何在Mysql中从另一个表向表中添加一列?

php - 保护php页面仅在浏览器中打开

php - 为什么表单变量在此 PHP 代码中不可用?

在存储过程中使用 IF 条件更新的 MySQL 语法?

php - laravel 5 在保存到数据库之前查询请求循环

mysql - 通过不同数据库更新列

php - GWT、PHP 和 SSL 的最佳单服务器解决方案

php - javascript html弹出窗口

mysql - YYYY 年份中的两位数年份

SQL-Oracle 使用 LAG() 从自身更新表