在sql-table中从html-form输入可变数量的值


Input variable number of values from html-form in sql-table

我有一个html表单,其中有五个输入字段,其中可以输入一个或多个产品特征。输入的值应该被发送到一个sql表。这适用于for循环,当所有5个字段都包含值时。

    <input name="productmaingroupsinput[1]" size="80"/><br>
    <input name="productmaingroupsinput[2]" size="80"/><br>
    <input name="productmaingroupsinput[3]" size="80"/>
    <input name="productmaingroupsinput[4]" size="80"/>
    <input name="productmaingroupsinput[5]" size="80"/>
     $productmaingroupsinput  = $_POST["productmaingroupsinput "];
     for ($i=1; $i<6; $i++) {
     $sql="INSERT INTO productmaingroup (productmaingroup_id, product_id, 
     productmaingroups) VALUES ('', (SELECT master_id from producttable 
     WHERE productname='$ productname '), '".productmaingroupsinput 
     [$i]."')";
      mysqli_query($db, $sql);
          }

但是,当填入条目的字段较少时,我的sql表中就会得到空条目。现在,我想避免sql表中的空字段。我试过

     if (isset($_POST["productmaingroupsinput[$k]"])) {
                       $j = $k + 1;
             }

    $j = count($productmaingroupsinput);

     for ($i=1; $i<$j; $i++) {
     $sql="INSERT INTO productmaingroup (productmaingroup_id, product_id, 
     productmaingroups) VALUES ('', (SELECT master_id from producttable 
     WHERE productname='$ productname '), '".productmaingroupsinput 
     [$i]."')";

但它不起作用。

我如何使for循环动态,以便它只发送输入的值到sql表?

谢谢!

你应该检查是否value为null .Like if($_POST["productmaingroupsinput"][$i]!= null)然后只执行该查询.我希望这将为您工作

这就是我的解决方案:

$master = mysqli_query($db, "SELECT master_id from producttable WHERE productname='{$productname}'");
$master_id = $master ? mysqli_fetch_field($master) : 'NULL';
foreach($_POST['productmaingroupsinput'] as $group) {
    if($group=='') {
        continue;
    }
    $groups[] = "('', {$master_id}, '".mysqli_real_escape_string($group)."')";
}
$result = mysqli_query($db, "INSERT INTO productmaingroup (productmaingroup_id, product_id, productmaingroups) VALUES ".implode(', ', $groups));

您必须循环productmaingroupsinput post值并检查是否为空。执行如下操作

    <?php
    foreach($_POST['productmaingroupsinput'] as $row)
    {
        if($row!='')
        {
            $sql="INSERT INTO productmaingroup ( product_id, 
         productmaingroups) VALUES ( (SELECT master_id from producttable 
         WHERE productname='$productname'), '".$row."')";
            mysqli_query($db, $sql);
        }
        else
        {
            echo "value empty";
        }

    }

    ?>