Массивное входное значение вставляет пустую запись в mysql

Я использую 4 поля ввода с тем же именем. Я буду заполнять только одно поле ввода за раз и вставлять в БД с помощью php. Но после выполнения следующего метода вставляем три пустые записи вместе со значениями 4-й записи.

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=""> 

Php

 $abc = $_POST['abc']; if (is_array($abc)) { foreach($abc as $c) { $insert="INSERT INTO item(productid) VALUES ('$c')"; $insert2=mysql_query($insert); } } 

просто проверьте, не пустое ли значение, а затем вставьте в базу данных.

 $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 инструкцию INSERT. Если, как вы полагаете, вы используете только 1 значение из своего ввода и можете применять его, вы можете опустить $value = rtrim($value, ","); который удаляет конечный,.

Я бы также посоветовал вам использовать mysqli или PDO, потому mysql_ функции 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 }