我使用4个具有相同名称的输入框。我将一次只填充一个输入框并使用php插入数据库。但是执行以下方法会插入三个空记录以及填充值的第4个记录。需要帮助!< / p>
HTML
<input type="text" name="abc[]" id="abc" value="">
<input type="text" name="abc[]" id="abc" value="">
<input type="text" name="abc[]" id="abc" value="">
<input type="text" name="abc[]" id="abc" value="">
腓
$abc = $_POST['abc'];
if (is_array($abc)) {
foreach($abc as $c) {
$insert="INSERT INTO item(productid) VALUES ('$c')";
$insert2=mysql_query($insert); }
}
答案 0 :(得分:3)
只检查该值是否为空,然后插入数据库。
$abc = $_POST['abc'];
if (is_array($abc)) {
foreach ($abc as $c) {
if(!empty($c)){
$insert = "INSERT INTO item(productid) VALUES ('$c')";
$insert2 = mysql_query($insert);
}
}
}
答案 1 :(得分:1)
以下代码生成1个INSERT语句。如果您建议您仅使用输入中的1个值,并且可以强制执行此操作,则可以省略$value = rtrim($value, ",");
,从而删除尾随,
。
我还建议您使用mysqli或PDO,因为mysql_
函数已被弃用。
$value = "";
if(isset($_POST['submit'])){
if(isset($_POST['abc'])){
foreach($_POST['abc'] as $c) {
if(!empty($c)){
$value .= "'".$c."',";}
}
$value = rtrim($value, ",");
}
$insert="INSERT INTO item(productid) VALUES ($value)";
echo $insert;//Remove after testing
}