Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP将数据插入MySQL,未知索引,我已经定义了它们?_Php_Mysql_Insert - Fatal编程技术网

通过PHP将数据插入MySQL,未知索引,我已经定义了它们?

通过PHP将数据插入MySQL,未知索引,我已经定义了它们?,php,mysql,insert,Php,Mysql,Insert,我正试图为一个学校项目建立一个网络商店,但我在订单部分遇到了问题。据我所知,我已经定义了所有变量,但它仍然显示“未识别索引” 下面是html代码的表单部分(名称是丹麦语的,忽略这些) 灌木丛 福纳文: Efternavn: 土地: 作者: 皮卡: 安塔尔个人: 帕克: 科多尔: 下面是我的php代码: $host="localhost"; $user="root"; $password=""; $database="webshop";

我正试图为一个学校项目建立一个网络商店,但我在订单部分遇到了问题。据我所知,我已经定义了所有变量,但它仍然显示“未识别索引”

下面是html代码的表单部分(名称是丹麦语的,忽略这些)


灌木丛

福纳文:
Efternavn:
土地:
作者:
皮卡:
安塔尔个人:
帕克:
科多尔:

下面是我的php代码:
    $host="localhost"; 
    $user="root"; 
    $password=""; 
    $database="webshop"; 
    $table="bestilling"; 

    $fnavn = $_POST['fornavn'];
    $enavn = $_POST['efternavn'];
    $land = $_POST['land'];
    $by = $_POST['by'];
    $pickup = $_POST['pickup'];
    $antal = $_POST['antal'];
    $pakke = $_POST['pakke']; 
    $kodeord = $_POST['kodeord'];

    // Forbindelse til server
    mysql_connect($host, $user, $password)or die("Kan ikke forbinde til server");
    mysql_select_db($database)or die("Kan ikke forbinde til databasen");

    $bestil = "INSERT INTO $table(Fornavn, Efternavn, Land, By, Pickup, Antal, Pakke, Kodeord)VALUES('$fnavn', '$navn', '$land', '$by', '$pickup', '$antal', '$pakke', '$kodeord')";

    $result = mysql_query($bestil);

    if ($result){
        echo("<br>Din bestilling er blevet oprettet");
    }else{
        echo(mysql_error());
    } 

    mysql_close();
    ?>
$host=“localhost”;
$user=“root”;
$password=“”;
$database=“webshop”;
$table=“bestilling”;
$fnavn=$_POST['fornavn'];
$enavn=$_POST['efternavn'];
$land=$_POST['land'];
$by=$_POST['by'];
$pickup=$_POST['pickup'];
$antal=$_POST['antal'];
$pakke=$_POST['pakke'];
$kodeord=$_POST['kodeord'];
//Forbindelse til服务器
mysql_connect($host,$user,$password)或die(“Kan-ike-forbinde-til-server”);
mysql_select_db($database)或die(“Kan-ike-forbinde-til-database”);
$bestil=“将值插入$table(Fornavn、Efternavn、Land、By、皮卡、Antal、Pakke、Kodeord)中(“$fnavn”、“$navn”、“$Land”、“$By”、“$皮卡”、“$Antal”、“$Pakke”、“$Kodeord”);
$result=mysql\u查询($bestil);
如果($结果){
回声(
Din bestilling er blevet opretet”); }否则{ echo(mysql_error()); } mysql_close(); ?>

我还尝试将数据手动发布到表中,看看是否可以检索它们,以检查是否与数据库有连接-但我没有任何问题,因此我在这里处于死胡同。

您在SQL查询中使用
$navn
,但该变量实际上被称为
$enavn

$bestil = "INSERT INTO $table(Fornavn, Efternavn, Land, By, Pickup, Antal, Pakke, Kodeord)VALUES('$fnavn', '$enavn', '$land', '$by', '$pickup', '$antal', '$pakke', '$kodeord')";

更改其中一个。

我建议您在输入标记中使用id,如

<input type="text" name="fornavn" id="fornavn" />


然后您将在$\u POST['fornavn']

中获得该值。关键字'by'是mySQL保留关键字,它是INSERT语句中描述的字段之一。您必须使用“by”将其放弃。

它在哪个索引上显示错误?在所有POST变量上使用
isset()
。您的表名是动态的,但行是静态的?这并不意味着老师使用了isset(),而且很有效,谢谢!但是现在就要明白了:您的SQL语法中有一个错误;请查看与MySQL服务器版本对应的手册,以了解使用第1行的“By、pick、Antal、Pakke、Kodeord”值(“”、“”、“”、“”、“”、“”、“”、“”、“”)的正确语法,注意小Johnny Tables不会填写您的web表单。
id
不用于表单或
POST
。发布数据只需要
名称
<input type="text" name="fornavn" id="fornavn" />