将表单数据提交到mysql时,未定义的变量错误消息?

时间:2014-04-10 15:54:09

标签: php mysql

我无法将表单插入mysql。由于某种原因,它无法正常工作并显示此消息:

Notice: Undefined index: company_name in C:\xampp\htdocs\hewden_spms\supplier_function\registration_complete.php on line 15

Notice: Undefined index: company_reg_number in C:\xampp\htdocs\hewden_spms\supplier_function\registration_complete.php on line 16
ERROR

有人可以告诉我我哪里出错了,我的表中有9列,但只想在一分钟插入company_name和company_reg_number。所以我认为我这样做是对的,但显然我错过了一些东西。

继承人我的HTML:

<form name="myForm" id="myform" action="registration_complete.php" onsubmit="return validateForm()" method="post">

<input type="text" name="cname">
<input type='text' name='creg'>

<input type="submit" id="postme" value="Submit">

PHP:

<?php
session_start();

$db_hostname = 'localhost';
$db_database = 'hewden1'; 
$db_username = 'root';
$db_password = '';

$db_server = mysql_connect($db_hostname, $db_username, $db_password)    
        or die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database)   
or die("Unable to select database: " . mysql_error());

$cname       = $_POST['company_name'];
$creg      = $_POST['company_reg_number'];    


$sql="INSERT INTO supplier_registration (null, company_name, company_reg_number, null, null, null, null, null, null)
VALUES ('$cname', '$cname')";$result = mysql_query($sql); 

if($result){

echo "jobs a gooden";

}else {
echo "ERROR";
}
?>

数据库结构:

table = supplier_registration

column 1 = id
column 2 = company_name
column 3 = company_reg_number
column 4 = address
column 5 = postcode
column 6 = email
column 7 = name
column 8 = vat
column 9 = age

4 个答案:

答案 0 :(得分:1)

更改此

 $cname       = $_POST['company_name'];
 $creg      = $_POST['company_reg_number'];

   $cname       = $_POST['cname'];
   $creg      = $_POST['creg'];

因为在你的html表单中你有cname和creg。

也改变了这个:

 $sql="INSERT INTO supplier_registration (null, company_name, company_reg_number, null, null, null, null, null, null)
  VALUES ('$cname', '$cname')";

$sql="UPDATE supplier_registration SET company_name ='$cname', company_reg_number='$cname' " ;

我猜你有很多列,你只想更新company_name和company_reg_number。

答案 1 :(得分:0)

在您的表单中有

<input type="text" name="cname">
<input type='text' name='creg'>

在你的PHP代码中有

$cname       = $_POST['company_name'];
$creg      = $_POST['company_reg_number'];  

所以,改变这个

$cname       = $_POST['cname'];
$creg      = $_POST['creg'];

答案 2 :(得分:0)

  1. 检查POST变量是否已设置并将其分配给变量。因此,如果用户未在特定输入中键入任何内容并提交,则不会收到任何警告。
  2. 您的HTML输入名称在PHP端获取时必须匹配。
  3. 所以重写你的PHP代码,

    if(isset($_POST['cnmae']))
    {
      $cname=$_POST['cname'];
    }
    if(isset($_POST['creg']))
    {
      $creg= $_POST['creg'];
    }
    

答案 3 :(得分:0)

您需要对代码进行以下更改:

$cname = $_POST['cname'];
$creg = $_POST['creg'];    


$sql="INSERT INTO supplier_registration (company_name, company_reg_number)
VALUES ('$cname', '$creg')";$result = mysql_query($sql);

但是请记住,这非常容易受到SQL注入的影响,如果您计划在实时网站上使用此代码,还应立即将MySQL替换为PDO / MySQLi。