php - 将 PHP 表单插入到 MySQL 数据库会产生重复的意外结果

标签 php html mysql ajax

您好,我搜索了另一种将记录从 php 表单插入到 xampp 的方法。我遇到了这个:https://www.youtube.com/watch?v=aXcp7IYi41Q

我结合了上一个问题的所有答案并将我的代码更改为:

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/font-awesome.min.css">
    <link rel="stylesheet" href="css/style.css">
    <title>BOOTSTRAP</title>
</head>
<body>
<div class="inquiry col-md-6">
        <h1>Inquire Now</h1>
            <form method="post" action="insert.php" id="frmBox" onsubmit="return formSubmit();">
                <div class="form-group">
                    <label for="InputName">Name*</label>
                    <input class="form-control" type="text" id="inputName" placeholder="Name" name="CustName">
                </div>
                <div class="form-group">    
                    <label for="InputLocation">Location*</label>
                    <input class="form-control" type="text" id="inputLocation" placeholder="Location" name="Location">
                </div>
                <div class="form-group">
                    <label for="SelectDate">Date of Event*</label>
                    <select class="form-control" id="SelectMonth" name="Month">
                        <option>Jan</option>
                        <option>Feb</option>
                        <option>Mar</option>
                        <option>Apr</option>
                        <option>May</option>
                        <option>Jun</option>
                        <option>Jul</option>
                        <option>Aug</option>
                        <option>Sept</option>
                        <option>Oct</option>
                        <option>Nov</option>
                        <option>Dec</option>
                    </select>
                    <select class="form-control" id="SelectDay" name="Day">
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                        <option>5</option>
                        <option>6</option>
                        <option>7</option>
                        <option>8</option>
                        <option>9</option>
                        <option>10</option>
                        <option>11</option>
                        <option>12</option>
                        <option>13</option>
                        <option>14</option>
                        <option>15</option>
                        <option>16</option>
                        <option>17</option>
                        <option>18</option>
                        <option>19</option>
                        <option>20</option>
                        <option>21</option>
                        <option>22</option>
                        <option>23</option>
                        <option>24</option>
                        <option>25</option>
                        <option>26</option>
                        <option>27</option>
                        <option>28</option>
                        <option>29</option>
                        <option>30</option>
                        <option>31</option>
                    </select>
                    <select class="form-control" id="selectYear" placeholder="Year" name="Year">
                        <option>2017</option>
                        <option>2018</option>
                        <option>2019</option>
                        <option>2020</option>
                        <option>2021</option>
                        <option>2022</option>
                    </select>
                </div>
                <div class="form-group">    
                    <label for="InputNumber">Number of Guests*</label>
                    <input class="form-control" type="Number" id="inputNumber" placeholder="Number" name="Guests">
                </div>
                <div class="form-group">    
                    <label for="InputContact">Contact Number*</label>
                    <input class="form-control" type="text" id="inputContact" placeholder="Contact Number" name="ContactNum">
                </div>
                <input class="btn btn-default" type="submit" value="submit" name="submit">
            </form>
        </div>
    </div>
    </div>
<!--SCRIPT-->
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript">
        function formSubmit(){
            $.ajax({
                type:'POST',
                url:'insert.php',
                data:$('#frmBox').serialize(),
                success:function(response){
                    $('#success').html(response);
                }
            });
            var form=document.getElementById('frmBox').reset();
            return false;
        }
    </script>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/script.js"></script>
</body>
</html>

这个用于 insert.php

?php
    $servername="localhost";
    $username="root";
    $dbpassword="";
    $dbname="catering";

    $conn=mysqli_connect($servername,$username,$dbpassword,$dbname);
    if(!$conn){
        die("Could Not Connect:".mysqli_connect_error());
    }
    else{
        $CustName=test_input($_POST['CustName']);
        $Location=test_input($_POST['Location']);
        $Month=test_input($_POST['Month']);
        $Day=test_input($_POST['Day']);
        $Year=test_input($_POST['Year']);
        $Guests=test_input($_POST['Guests']);
        $ContactNum=test_input($_POST['ContactNum']);

        $sql="INSERT INTO inquiry(CustName,Location,Month,Day,Year,Guests,ContactNum)VALUES('$CustName','$Location','$Month','$Day','$Year','$Guests','$ContactNum')";

        if(mysqli_query($conn,$sql)){
            echo "Thank you for Inquiring";
        }
        else{
            echo "Failed to Inquire. Please try again";
        }
        mysqli_close($conn);
    }
    function test_input($data){
        $data=trim($data);
        $data=stripslashes($data);
        $data=htmlspecialchars($data);
    }
?>

现在它比我以前的代码更好,我在本地主机上运行它,当我提交我的测试信息时,比如姓名、位置、月、日、年、客人和联系电话,然后我点击提交,对吧? url 不再更改,这意味着它已成功连接到数据库。但是当我进入 mySQL 数据库时,它产生了这个结果:

PIC OF DATABASE 正如你们所见,它全为零,并且只出现在 Guests 和 ContactNum 中。第一次尝试提交,我得到了两个结果,然后我又试了很多次。全为零且仅出现在两列上。你们认为这里可能是什么问题?会不会是服务器错误,设置错误,安装错误?还是声明错误?名字不符?我可能会错过什么?请帮忙。谢谢。

这是我之前的问题以供引用:Submission of PHP Form to XAMPP MySQL database

最佳答案

我终于解决了这个问题。我只是更改了表名:

CustName > customer_name
Location > customer_location
Month > date_month
Day > date_day
Year > date_year
Guests > number_guests
ContactNum > customer_contact

关于php - 将 PHP 表单插入到 MySQL 数据库会产生重复的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46500173/

相关文章:

python - 如何从 Zillow 链接中提取估计的房屋值(value)?

javascript - Div 不切换

Mysql(Myisam)变量设置

php - 将 "new"形式转换为 "edit"形式的最简单方法

php - 为登录用户 PHP MYSQL 添加异常或条件

php - 基于数字的颜色编码

php - 在 wordpress/buddypress 安装中实现类似 Foursquare 的 checkin

php - 如何在 PHP 中复制 Excel FV 函数?

javascript - 使用 jQuery 将新的 div 容器添加到 div 容器 ID

python - 在 Django 模型中为 id 设置自动递增初始值