Reputation: 213
I use 4 input boxes with same name.I will fill only one input box at a time and insert in DB using php.But doing following method inserts three empty records along with value-filled 4 th record.Need help!
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); }
}
Upvotes: 1
Views: 93
Reputation: 7228
The following code produces 1 INSERT statement. If as you suggest you are only using 1 value from your input, and can enforce this you can omit $value = rtrim($value, ",");
which removes the trailing ,
.
I would also advise you to use either mysqli or PDO because mysql_
functions are deprecated.
$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
}
Upvotes: 1
Reputation: 1052
just check if the value is not empty then insert to database.
$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);
}
}
}
Upvotes: 3