用于不将订单输入 MySql DB 的订单的 PHP 脚本(使用 XAMPP)

标签 php mysql forms

我正在为我的教员做一个项目,某种用于订购的网络应用程序,即 UPS 来领取您想要发送的邮件。我有一个问题,当我使用提交运行订单表单时,我创建的脚本没有将数据插入到我的数据库中的表中(连接正常工作,我测试了它)。

    if(isset($_POST['city']) && isset($_POST['contact']) && isset($_POST['adress']) && isset($_POST['priority']) && isset($_POST['box_size'])){
    if(isset($_POST['del_name']) && isset($_POST['del_lname']) && isset($_POST['del_adress']) && isset($_POST['del_pob'])){
        if($_POST['priority'] == "Ne" && $_POST['box_size'] == "1*1*1"){
            $_POST['price'] = "50kn";
            $sql = "INSERT INTO orders SET price='$_POST[price]', city='$_POST[city]', contact='$_POST[contact],
                    adress='$_POST[adress]', del_adress='$_POST[del_adress]', del_pob='$_POST[del_pob]', box_size='$_POST[box_size]',
                    priority='$_POST[priority]', del_name='$_POST[del_name]', del_lname='$_POST[lname]'";
            $result=mysql_query($sql);
        }

上面的代码说明了我的条件,检查表单中的所有字段是否都已设置。表中的所有属性均为 varchar

<form name="form2" method="post" action="order_script.php">
    <h2>Pošiljatelj</h2>
        <p><!--Ovdje ide ime $_GET od ulogiranog--></p>
        <p><!--Ovdje ide $_GET prezime od ulogiranog--></p>
        <p>Grad/Mjesto: <input type="text" name="city" size="25" maxlength="20" value=""/></p>
        <p>Kontakt broj: <input type="text" name="contact" size="25" maxlength="20" value=""/></p>
        <p>Adresa: <input type="text" name="adress" size="25" maxlength="20" value=""/></p>
        <!--select for box_size-->
        <p>Brzina dostave/Prioritet: <select name="priority">
        <option value="">Da</option>
        <option value="">Ne</option>
        </select></p>

    <p>Veličina kutije: <select name="box_size">
        <option value="sm">1*1*1</option>
        <option value="md">2*2*2</option>
        <option value="lg">3*3*3</option>
        <option value="xl">4*4*4</option>
        </select></p>

    <h2>Primatelj</h2>
        <p>Ime: <input type="text" name="del_name" size="25" maxlength="20" value=""/></p>
        <p>Prezime: <input type="text" name="del_lname" size="25" maxlength="20" value=""/></p>
        <p>Adresa: <input type="text" name="del_adress" size="25" maxlength="20" value=""/></p>
        <p>Poštanski broj: <input type="text" name="del_pob" size="25" maxlength="20" value=""/></p>

        <!--Price of delivery hidden -->

        <input type="hidden" name="price" size="25" maxlength="20" value=""/></p>

        <p><input type="submit" name="order" value="Naruči"/></p><br></br>
</form>

因此,当我提交表单时,它只会运行脚本并显示空页面。

最佳答案

所提供的代码存在多个问题。首先,缺少一个撇号(如 lolbas 所示),并且缺少两个右括号。这是一个没有语法错误的 block :

if(isset($_POST['city']) && isset($_POST['contact']) && isset($_POST['adress']) && isset($_POST['priority']) && isset($_POST['box_size'])){
    if(isset($_POST['del_name']) && isset($_POST['del_lname']) && isset($_POST['del_adress']) && isset($_POST['del_pob'])){
        if($_POST['priority'] == "Ne" && $_POST['box_size'] == "1*1*1"){
            $_POST['price'] = "50kn";
            $sql = "INSERT INTO orders SET price='$_POST[price]', city='$_POST[city]', contact='$_POST[contact]',
                    adress='$_POST[adress]', del_adress='$_POST[del_adress]', del_pob='$_POST[del_pob]', 
                    box_size='$_POST[box_size]', priority='$_POST[priority]', del_name='$_POST[del_name]', del_lname='$_POST[lname]'";
            $result=mysql_query($sql);
        }
    }
}

此外,您正在检查 $_POST['priority'] == "Ne"是否,但您的 SELECT 选项没有设置任何值:

<select name="priority">
    <option value="">Da</option>
    <option value="">Ne</option>
</select>

...所以你的测试总是错误的,并且查询不会被执行。

希望这有帮助!

关于用于不将订单输入 MySql DB 的订单的 PHP 脚本(使用 XAMPP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971166/

相关文章:

php - CakePhp:Cake Email AfterSend 事件

html - Chrome 不呈现 <form> 标签,FF 会

php - JavaScript 表单已提交,但发布数据在 PHP 中不可用

html - Ajax 表单提交,无法弄清楚为什么它不起作用

PHP 多文件数组

php - 如何更新一张表中的多行(mysql、php、pdo)

php - MySQL查询工作正常,但不打印记录

mysql - 如何安装 mysql 连接器以与 Visual Studio 一起使用

python - SQL:从可能位于另一个表中的列中获取值

javascript - 如何仅使用 Javascript 在 div 中显示整个选择元素