如何在PHP中保存多条记录并忽略空记录?

时间:2014-01-04 01:28:01

标签: php mysql

我是PHP的新手。我想在表单上保存多条记录。例如,假设我有一个带有一个ID的20记录表。当我输入18条记录时,2条是空的。现在,如何在忽略空记录的同时保存它们?

我将代码缩短为3条记录。

包含3条记录的FORM代码:

<form class="form-horizontal" method="POST" action="">
<div class="form-group">
<input type="text" id="inputDate" class="inputDate  form-control" value="11/22/2013" name="tanggal">
</div>

<input type="hidden" name="id" id="id" value="<?$id;?>">
<table>
<thead>
     <tr>
     <th>DO</th>
     <th>PO</th>
     <th>Nama Relasi</th>
     <th>Alamat</th>
     <th>Pcs</th>
     <th>Harga</th>
     <th>Keterangan</th>
     </tr>
     </thead>
     <tbody>
     <tr>
    <td><input type="text" class="do" name="do[]" id="do" ></td>
        <td><input type="text" class="do" name="po[]" id="po" ></td>
    <td><input type="text" name="name[]" id="name" ></td>
    <td><input type="text" class="do2" name="address[]" id="alamat" ></td>
    <td><input type="text" class="do" name="pcs[]" id="pcs" ></td>
    <td><input type="text" name="price[]" id="price" ></td>
    <td><input type="text" name="ket[]" id="ket" ></td>
     </tr>
     <tr>
    <td><input type="text" class="do" name="do[]" id="do" ></td>
        <td><input type="text" class="do" name="po[]" id="po" ></td>
        <td><input type="text" name="name[]" id="name" ></td>
    <td><input type="text" class="do2" name="address[]" id="alamat" ></td>
        <td><input type="text" class="do" name="pcs[]" id="pcs" ></td>
        <td><input type="text" name="price[]" id="price" ></td>
    <td><input type="text" name="ket[]" id="ket" ></td>
     </tr>
     <tr>
    <td><input type="text" class="do" name="do[]" id="do" ></td>
        <td><input type="text" class="do" name="po[]" id="po" ></td>
        <td><input type="text" name="name[]" id="name" ></td>
    <td><input type="text" class="do2" name="address[]" id="alamat" ></td>
        <td><input type="text" class="do" name="pcs[]" id="pcs" ></td>
        <td><input type="text" name="price[]" id="price" ></td>
    <td><input type="text" name="ket[]" id="ket" ></td>
     </tr>
     </tbody>
     </table>
     <div class="text-right">
     <button type="submit" name="submit">Save</button><button type="reset">Delete</button>
     </div>
</form>

和PHP代码:

<?
        include "dbase.php";
        if(isset($_POST['submit'])) {


            for($i = 0; $i < 3; $i++) {

            $do = $_POST['do'][$i];
            $po = $_POST['po'][$i];
            $name = $_POST['name'][$i];
            $address = $_POST['address'][$i];
            $pcs = $_POST['pcs'][$i];
            $price = $_POST['price'][$i];
            $ket = $_POST['ket'][$i];

            $query  = "SELECT max(id) FROM table1 ";
            $ids=mysql_query($query);
            $row=mysql_fetch_array($ids);
            $row[0]++;
            $norest=sprintf("%04d",$row[0]);

            $format = DO14;

            $id = $format.$norest; 
            $date = $_POST['tanggal'];

            $SQL = "INSERT INTO table1 (id,date,do,po,name,address,pcs,price,ket) VALUES ('$id','$date','$do','$po','$name','$address','$pcs','$price','$ket')";
            $result = mysql_query($SQL, $connect);

            if ($result) {
                    echo "<div class='alert alert-success'><h5><b>Record save...</b></h5></div>";
                            }
                else {
                    echo "<div class='alert alert-danger'><h5><b>Failure..</b></h5></div>";
                }

            }
        }
        ?>

上面的代码没有任何反应。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

很难说没有代码示例(如果你更新了我可以更新我的答案的问题),但是如果你有一个包含20个输入的表单,使用名为<input type="text" name="records[]" id="record-1" />的数组,那么你可以迭代提交时$_POST['records']

foreach($_POST['records'] as $record) {
  if(!empty($record)) {
    // Insert record here
  }
}

if(!empty($records))可以替换为if($records)if($records != null),具体取决于您对“空”记录的具体需求。