PHP表单发布并插入多行

时间:2017-08-05 06:11:51

标签: php mysql database forms post

我很难过。我已经在Stackoverflow上查看了多个答案,但是无法得到它。也许我只是没有看到什么。

我正在制作一个Family Feud游戏,并使用PHP和MySQL数据库存储和检索信息。对于Fast Money Round,我有一个带有表格的数据库,名为" FastMoney1"我使用HTML5表单和PHP将表单中的数据发布到该表,该表有两列:答案和分数

我通过for循环运行我的查询,但它没有向表中发布任何内容。我想知道我做错了什么。

HTML:

<form method="post" class="form-horizontal">
    <div class="form-group">
        <div class="col-xs-9">
            <input type="text" class="form-control" id="question1answer" name="answer[0]" placeholder="Question 1">
        </div>
        <div class="col-xs-3">
            <input type="number" class="form-control" id="question1score" name="score[0]" placeholder="0">
        </div>
    </div>
    <div class="form-group">
        <div class="col-xs-9">
            <input type="text" class="form-control" id="question1answer" name="answer[1]" placeholder="Question 2">
        </div>
        <div class="col-xs-3">
            <input type="number" class="form-control" id="question1score" name="score[1]" placeholder="0">
        </div>
    </div>
    <div class="col-xs-4 col-xs-offset-4" align="center">
        <input type="submit" class="btn btn-success" name="Submit" />
    </div>
</form>

PHP:

<?php

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

        require "config.php";

        for ($i = 0; $i<count($_POST); $i++){
            $answer = $_POST['answer'][$i];
            $score = $_POST['score'][$i];
            $sql = "INSERT INTO `fastMoney1`(`answer`, `score`) VALUES ('$answer','$score')";
            if ($conn->query($sql) === TRUE) {
                echo "";
            } else {
                echo $conn->error;
            }
        }

        $conn->close();
        echo "<meta http-equiv='refresh' content='0'>";

    }

?>

所有这些都存在于同一个PHP页面上,这就是为什么我没有附加到表单的操作。

config.php是一个包含,它调用主机,用户名,密码和数据库并打开连接

3 个答案:

答案 0 :(得分:2)

请记住,PHP变量区分大小写,您在表单中给出了名称Submit,而在php中,您正在检查if(isset($_POST['submit'])){,它永远不会成为现实。  将其更改为

if(isset($_POST['Submit'])){ //<----- S in upper case

修改 您还需要将循环更改为

for ($i = 0; $i<count($_POST['answer']); $i++){

答案 1 :(得分:-1)

 <input type="submit" class="btn btn-success" name="submit" />

我改变了

 name="Submit"

 name="submit"

&#34;提交&#34;提交&#34;提交&#34; -----&GT;&#34; S&#34;到&#34; s&#34;

并且工作正常

答案 2 :(得分:-1)

查看你的sql语句,你不需要表名和列名中的那些&符号INSERT INTO fastMoney1answerscore)VALUES('$ answer','$ score “)