2011-08-02 134 views
0

我使用:形式将数据添加到MySQL表

*connection details* 

$fname = stripslashes($_POST['fname']); 
$surname = stripslashes($_POST['surname']); 
$address = stripslashes($_POST['address']); 

$sql = "INSERT INTO mytable (id, fname, surname, address) 
VALUES ('', '$fname', '$surname', '$address')"; 
$results = mysql_query($sql); 

if ($results) 
{ 
echo "Details added."; 
} 

问题是一个条目添加到表中,但所有数据都是空白的,而不是从形式上的东西吗?

形式:

<form id="myform" action="add.php" method="post" name="myform"> 
<label for="fname">First Name</label> 
<input id="fname" name="fname" ><br /> 
<label for="surname">Surname</label> 
<input id="surname" name="surname" ><br /> 
<label for="address">Address</label> 
<input id="address" name="address" > 
<input type="submit" name="submitButtonName" value="Add"> 
+0

错过了这个从代码: – Tim

+0

$结果=请求mysql_query($ sql中); if($ results) { echo“Details added。”; } – Tim

+0

_POST值是否实际包含任何数据? – diagonalbatman

回答

0

在猜测,我会成像,这是小东西,如不具有“名称”值的字段设置。如果您没有设置“名称”,则发布数据不会包含任何详细信息。如果这不是问题,请发布您的代码,我可以看看我是否发现任何问题。

2

你也应该发布你的HTML代码。确保窗体的方法是POST如下:

<form method="POST" action="process.php"> 
    <input type="text" name="fname" /> 
    <input type="text" name="surname" /> 
    <input type="text" name="address" /> 
</form> 

而且你<input />元素的名称属性应该被正确设置。 如果全部完成,您应该能够在process.php页面中获得$_POST变量。因此:

$fname = stripslashes($_POST['fname']); 

通过简单的echo $fname;检查您的变量是否有值。如果它们被设置,失败系统的一个可能的原因可能是你的SQL查询。离开了ID,只是做:

$sql = "INSERT INTO mytable (firstname, surname, address) 
     VALUES ('" . $fname . "', '" . $surname . "', '" . $address . "')"; 
$result = mysql_query($sql); 
+0

对我而言似乎都是正确的 - 请参阅已编辑的问题。 – Tim

+0

更新了我的答案。 – Jules

1

你应该尝试打印此变量的调试。

echo $fname = stripslashes($_POST['fname']); 
echo $surname = stripslashes($_POST['surname']); 
echo $address = stripslashes($_POST['address']); 

你会看到变量的数据。

+0

'echo $ fname = stripslashes($ _ POST ['fname']);'什么都不打印(作为变量赋值的状态) – ajreal

+0

okey。其他变量?他们是空的吗? –

0

如果在数据库表中的ID字段是自动递增的不是有没有必要把在MySQL查询,试试这个

$sql = "INSERT INTO mytable (fname, surname, address) 
      VALUES ('$fname', '$surname', '$address')";