2011-08-02 135 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')";