订单的PHP脚本没有将订单输入MySql数据库(XAMPP正在使用中)


PHP script for orders not entering orders into MySql DB (XAMPP in use)

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

    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所示),缺少两个右括号。这里有一个没有语法错误的块:

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>

因此,您的测试总是错误的,并且不执行查询。

希望这能有所帮助!

你能试试这个查询吗:

INSERT INTO orders (city, contact, adress, priority, box_size, del_name, del_lname, del_adress, del_pob)
VALUES ('$_POST[price]', '$_POST[city]', '$_POST[contact], '$_POST[adress]', '$_POST[del_adress]','$_POST[del_pob]', '$_POST[box_size]', '$_POST[priority]', '$_POST[del_name]', '$_POST[lname]'); 

尝试检查所有这些步骤。也许这会对你有很大帮助:

  1. mysql_query在PHP 5.5.0中已弃用,因此请检查您的PHP版本
  2. 尝试使用PDO而不是MySQL函数
  3. 您的第三个if不正确,它将不起作用。使用var_dump检查$_POST['priority'] == "Ne"$_POST['box_size'] == "1*1*1"是否返回正确的值。如果不是,请更正
  4. 你的查询也不正确,试试这个
INSERT INTO orders(city, contact, adress, priority, box_size, del_name, del_lname, del_adress, del_pob) VALUES ('$_POST[price]', '$_POST[city]', '$_POST[contact], '$_POST[adress]', '$_POST[del_adress]','$_POST[del_pob]', '$_POST[box_size]', '$_POST[priority]', '$_POST[del_name]', '$_POST[lname]');

很缺乏。