更新MySQL表中的值而不是添加新值

时间:2017-07-20 13:30:59

标签: php mysql forms

我正在尝试为用户创建一种通过HTML表单提交团队分数的方法,并将这些值存储在MySQL表中以便稍后回读。

问题(除了我在网上找到随机代码)是我需要得分的每个实例(Score1,Score2,Score3等)才能更新其值。因此,如果为“Score1”添加新分数,则应替换旧分数。现在它只是创建列出每个新提交的行。

所以这就是我迄今为止能够整理的内容。这是将重复约200次的表格(我有200个要插入的分数):

<form action="storage.php" id="scores" method="post">
   <input type="number" placeholder="00" maxlength="2" name="score" id="score1">

然后我的storage.php文件如下所示:

<?php
    $host     = "localhost"; // Host name 
    $username = "scoreboard"; // Mysql username 
    $password = "XXXX"; // Mysql password 
    $db_name  = "admin_scoreboard"; // Database name 
    $tbl_name = "scores"; // Table name 
    // Connect to server and select database.
    mysql_connect("$host", "$username", "$password") or die("cannot connect");
    mysql_select_db("$db_name") or die("cannot select DB");
    // Get values from form 
    $score1 = $_POST['score1'];
    // Insert data into mysql 
    $sql    = "INSERT INTO $tbl_name(score1)VALUES('$score1')";
    $result = mysql_query($sql);
    // if successfully insert data into database, displays message "Successful". 
    if ($result) {
        echo "Successful";
        echo "<BR>";
        echo "<a href='test.html'>Back to main page</a>";
    } else {
        echo "ERROR";
    }
    // close connection 
    mysql_close();
?>

如果这令人困惑,我的总体目标是让教练通过HTML表单为他们的团队提交分数,将其存储在MySQL中,然后在HTML表格中显示分数。但是,主要的是让教练回去并根据需要更新特定球队的得分。我担心在另一个时间从MySQL中撤回数据:)

2 个答案:

答案 0 :(得分:0)

QUERY:

INSERT INTO table (id, name, age) VALUES(1, "A", 19) 
    ON DUPLICATE KEY UPDATE name="A", age=19

试试这个..

答案 1 :(得分:0)

用这个替换你的查询

INSERT INTO $tbl_name(score1) VALUES('$score1') 
    ON DUPLICATE KEY UPDATE score1='$score1'