2013-04-13 56 views
0

無論有多少網站嘗試讓這個工作起來,它仍然沒有。我無法將輸入的數據最終輸入到數據庫中。表單提交,但不會返回錯誤。在phpMyAdmin中查看時,沒有記錄。我已經調整了一百萬次,沒有運氣。第二套眼睛能告訴我我做錯了什麼嗎?無法將數據從php表單發佈到mysql中

謝謝!

<body> 
<form action="insert.php" method="post"><br> 
Date: <input type="text" name="date" id="date"><br> 
Time: <input type="text" name="time" id="time"><br> 
City: <input type="text" name="city" id="city"><br> 
Fire Dept: <input type="text" name="fire" id="fire"><br> 
Address: input type="text" name="addy" id="addy"><br> 
Call Type/Level <input type="text" name="level" id="level"><br> 
Description: <input type="text" name="desc" id="desc"><br> 
Units: <input type="text" name="units" id="units"><br> 
Submitted by: <input type="text" name"who" id="who"><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 
</body> 
</html> 

<?php 
if (isset($_POST['submit'])){ 

$db=mysql_connect("", "", ""); 
$mydb=mysql_select_db("rm911_incidents"); 

$date=$_Post['date']; 
$time=$_Post['time']; 
$city=$_Post['city']; 
$fire=$_Post['fire']; 
$addy=$_Post['addy']; 
$level=$_Post['level']; 
$desc=$_Post['desc']; 
$units=$_Post['units']; 
$who=$_Post['who']; 

$sql = "INSERT INTO incidents(date,time,city,fire,addy,level,desc,units,who) 
VALUES 
('$date','$time','$city','$fire','$addy','$level','$desc','$units','$who')"; 
$result = mysql_query($sql); 
if($result) 
{ 
echo "<br>Input data is successful"; 
} 
else 
{ 
echo ("<br>Input data has failed"); 
} 
} 
?> 

好了,所以我有固定利奧提到(謝謝!),但是這不是問題,或者錯誤。我使用您提供的錯誤報告的錯誤是:未定義索引:xxx ...(xxx是數據庫中的每個字段名稱)。我在數據庫中有一個'id'字段,auto_increment-ing - 我忘了將它設置爲索引嗎?

+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – rekire

+0

運行腳本時輸出的內容是什麼?它顯示失敗的消息嗎? – 1337holiday

+0

它在你的服務器日誌上說了什麼。需要看到一個錯誤。粗略瀏覽一下,我沒有注意到任何東西,但老的惡化的PHP編碼。而不是Mysql_使用pdo。 –

回答

0

進行了一些修改,這應該工作..如果犯規是它最有可能與你的數據庫的問題

<html> 
<body> 
<form action="insert.php" method="POST"><br> <!-- method POST--> 
Date: <input type="text" name="date" id="date"><br> 
Time: <input type="text" name="time" id="time"><br> 
City: <input type="text" name="city" id="city"><br> 
Fire Dept: <input type="text" name="fire" id="fire"><br> 
Address: <input type="text" name="addy" id="addy"><br> 
Call Type/Level <input type="text" name="level" id="level"><br> 
Description: <input type="text" name="desc" id="desc"><br> 
Units: <input type="text" name="units" id="units"><br> 
Submitted by: <input type="text" name="who" id="who"><br> <!-- name"who" changed --> 
<input type="submit" name="submit" value="Submit"> 
</form> 
</body> 
</html> 

<?php 
if (isset($_POST['submit'])) { 

$db=mysql_connect("", "", "") or die ("Cant connect"); 
$mydb=mysql_select_db("rm911_incidents") or die ("Cant find db"); 

$date = $_POST['date']; //_POST not _Post 
$time = $_POST['time']; 
$city = $_POST['city']; 
$fire = $_POST['fire']; 
$addy = $_POST['addy']; 
$level = $_POST['level']; 
$desc = $_POST['desc']; 
$units = $_POST['units']; 
$who = $_POST['who']; 

$sql = "INSERT INTO incidents (date , time, city , fire , addy , level , desc , units , who) 
VALUES ('$date' , '$time' , '$city' , '$fire' , '$addy' , '$level' , '$desc' , '$units' , '$who')"; 
$result = mysql_query($sql) or die ("Cant insert"); 
if($result) 
{ 
echo "<br>Input data is successful"; 
} 
else 
{ 
echo "<br>Input data has failed"; 
} 
} 
?> 
+0

非常感謝你的修復。但是,它仍然不會將數據插入到數據庫中。我從哪裏出發? – Tim

+0

檢查你的數據庫結構是否設置正確,如果你可以的數據庫結構後屏幕截圖 – Derple

+0

[鏈接](http://s11.postimg.org/eg99629pf/screenshot1.png) – Tim

3

POST數據存儲在$_POST陣列中,而不是$_Post陣列中。您應該在服務器日誌或瀏覽器中獲取有關未定義變量的通知(如果將PHP消息發送給瀏覽器)。

+0

謝謝!這絕對是一個錯誤,但不是那個似乎導致失敗的錯誤 – Tim

1

的問題是在您的文章數組名稱$ _ POST

$date=$_Post['date']; 
$time=$_Post['time']; 
$city=$_Post['city']; 
$fire=$_Post['fire']; 
$addy=$_Post['addy']; 
$level=$_Post['level']; 
$desc=$_Post['desc']; 
$units=$_Post['units']; 
$who=$_Post['who']; 

代替$ _ POST,你應該使用$ _ POST。此外,你可以做

var_dump($_POST); 

在php文件的頂部,所以你將能夠看到表單發送到你的腳本。

問候

0

而且你缺少一個左括號:

Address: input type="text" name="addy" id="addy"><br> 

應該是:

Address: <input type="text" name="addy" id="addy"><br> 
+0

謝謝 - 它是在真實的代碼中,當我學習編碼時,我一定會意外地刪除它! – Tim

0

嘗試<?php後在最高層在你的PHP文件中這樣做:

//error reporting set to all 
error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 

也可以在你的html之前放置你的php代碼。

您應該看到輸出錯誤並能夠進行調試。

如果您需要幫助,請在這裏發佈錯誤。

+0

好的,所以我修復了Leo提到的錯誤(謝謝!),但是這也不是問題。我使用您提供的錯誤報告的錯誤是:未定義索引:xxx ...(xxx是數據庫中的每個字段名稱)。我在數據庫中有一個'id'字段,auto_increment-ing - 我忘了將它設置爲索引嗎? – Tim

+0

你可以在你的問題發佈? – 1337holiday

+0

只是,謝謝 – Tim

0

您可以檢查是否Submitted by: <input type="text" name"who" id="who"><br>導致錯誤.. 應該Submitted by: <input type="text" name="who" id="who"><br>

如果這並不幫助..嘗試運行在你的PHP文件的靜態插入查詢,並檢查其工作...

問候, 利奧

+0

謝謝利奧,我錯過了 – Tim