PHP mySQL数据库更新值无效

时间:2017-10-08 11:32:15

标签: 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");
}

我试图找到一个解决方案而且我找不到合适的解决方案。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您的网页是否有任何错误?

我建议不要使用<a>标记提交,更好的解决方案:

<form >
    <input type="submit" class="btn" name="addpoints">
</form>

我相信你的SQL的Where声明存在问题: WHERE 1
您没有指定列。它应该类似于points = points+10 Where userID=1

答案 1 :(得分:1)

@marakusa我不知道你要用你向我们展示的这段代码想要完成什么,但如果我理解了什么,是你想要更新数据库中的用户点,我会告诉你我是怎么做的会以一种简单的方式解决它。

首先,如果您不注意使用javascript(ajax),我就不知道为什么要使用标签。所以我把它改成了常规的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>