2013-04-13 120 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