我有一个带有标准文本字段的表单。我已经创建了一个在http://phpmysqlmania.blogspot.com/p/dynamic-table-row-inserter.html的帮助下重复的表格。我把它发布到Mysql Ok。但它只发布1行的问题。添加表无处可去。
我简化了代码(很长) 这是我的代码:
JS
<script type='text/javascript'>
$(document).ready(function() {
var currentItem = 1;
$('#addnew').click(function(){
currentItem++;
$('#items').val(currentItem);
var strToAdd = '<tr><th colspan="100%"></th></tr><tr><tr><th>Type</th><th>Description</th><tr><td align="center"><select name="typeofunit'+currentItem+'" id="typeofunit'+currentItem+'" ><option value="DX">DX</option><option value="Chiller">Chiller</option></select></td><td align="center"><input name="unitdescription'+currentItem+'" id="unitdescription'+currentItem+'"></td></tr>';
$('#data').append(strToAdd);
});
});
的index.php
<form action="function.php" method="post">
<table>
<tr><th>Company Name</th><th>Street</th><th>City</th><th>State</th><th>Zip</th><th>Country</th> </th></tr>
<td><input type="text" id="company" name="company" ></td>
<td><input id="street" name="street" ></td>
</table>
<br>
<table>
<table>
<tr><th>DX or Chiller</th><th>Equipment Description</th></tr>
<tr>
<td align="center">
<select name="typeofunit1” id="typeofunit1” >
<option value="DX">DX</option>
<option value="Chiller">Chiller</option>
</select>
</td>
<td align="center">
<input name="unitdescription1” id="unitdescription1”>
</td>
</tr>
</table>
<input type="button" id="addnew" name="addnew" value="Add Another Unit" />
<input type="submit" value="Submit" />
</body>
</html>
function.php
<?php
$con = mysql_connect("localhost","ptgpfaso_root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydatabase", $con);
for( $i = 0 ; $i <= $count; $i++ )
{
$company = $_POST['company'];
$street = $_POST['street'];
$typeofunit = $_POST['typeofunit' . ($i+1)];
$unitdescription = $_POST['unitdescription' . ($i+1)];
$sql = "INSERT INTO equips (company,street,typeofunit,unitdescription,)
VALUES
('".$company."',
'".$street."',
'".$typeofunit."',
'".$unitdescription."',
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo " Submitted to MySQL ";
}
?>
答案 0 :(得分:0)
您在插入查询中添加了额外的,
,例如unitdescription,
和'".$unitdescription."',
,并且未正确关闭)
查询。
$sql = "INSERT INTO equips (company,street,typeofunit,unitdescription)
VALUES
('".$company."',
'".$street."',
'".$typeofunit."',
'".$unitdescription."');
而不是
$sql = "INSERT INTO equips (company,street,typeofunit,unitdescription,)
VALUES
('".$company."',
'".$street."',
'".$typeofunit."',
'".$unitdescription."',
另外,
for( $i = 0 ; $i < $count; $i++ )
------------------^
而不是
for( $i = 0 ; $i <= $count; $i++ )
注意:使用mysqli_ *函数或PDO而不是使用mysql_ *函数(不建议使用)
答案 1 :(得分:0)
这样做:
$company = mysql_real_escape_string($_POST['company']);
$street = mysql_real_escape_string($_POST['street']);
$typeofunit = mysql_real_escape_string($_POST['typeofunit' . ($i+1)]);
$unitdescription = mysql_real_escape_string($_POST['unitdescription' . ($i+1)]);
$sql = "INSERT INTO equips (company,street,typeofunit,unitdescription)
VALUES ('$company', '$street', '$typeofunit', '$unitdescription')";
这将修复你的代码。虽然不建议使用mysql_*
函数,因为它们已被弃用。
你的错误:
错误1:您尚未关闭在INSERT
之前打开的双引号
错误2:您没有使用VALUES
末尾的结束括号
错误3:您在unitdescription
查询中INSERT()
后添加了一个额外的逗号。
另外,您是否已初始化$count
变量?