数组输入值在mysql中插入空记录

时间:2014-12-14 19:50:21

标签: php html mysql arrays

我使用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);              }

}

2 个答案:

答案 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
}