在自动保存时重复sql中的相同数据


Repeating same data in sql on autosave

我试图在数据库中自动保存一段时间后的一些数据。这是我的视图代码

<div id="main">
  <?php echo validation_errors(); ?>
  <h1>Purchase Product Detail</h1>

  <?php
  echo form_open( 'shop/buy_product/submit' );
  ?>
  <?php echo validation_errors(); ?>
  <table>
    <tr>
      <td>
        Shop Name
      </td>
      <td>
<?php
echo form_dropdown( 'shop', $tags );

//echo form_dropdown('shop', $options, 'Yellow');
?>
      </td>
    </tr>
    <tr>
      <th>
        SL.
      </th>
      <th>
        Product code
      </th>
      <th>
        Product Name
      </th>
      <th>
        Rate
      </th>
      <th>
        Quantity
      </th>
      <th>
        Total
      </th>
      <th>
        Sell Price
      </th>
    </tr>
<?php for ( $i = 1; $i <= 10; $i++ ): ?>
      <tr>
        <td width="10">
  <?php echo $i; ?>
        </td>
        <td>
          <input size="10" type="text" name="code[]" value="<?php echo ''; ?>" id="code_<?php echo $i; ?>" />
        </td>
        <td width="20%">
      <name="product[]" value="<?php echo ''; ?>" id="product_<?php echo $i; ?>"/>
      </td>
      <td>
        <input size="10"type="text" name="rate[]" value="<?php echo ''; ?>" id="rate_<?php echo $i; ?>" />
      </td>
      <td>
        <input size="10" type="text" name="quantity[]" value="<?php echo ''; ?>" id="quantity_<?php echo $i; ?>" />
      </td>
      <td width="15%">
      <name="total[]" value="<?php echo ''; ?>" id="total_<?php echo $i; ?>"/>
      </td>
      <td>
        <input size="10" type="text" name="sell[]" value="<?php echo ''; ?>" id="sell" />
      </td>
      </tr>
<?php endfor; ?>



  </table>
  <input type="submit" value="Submit"/>
<?php echo form_close(); ?>

</div>

这是我的型号

    function add_product()
        {
            $data  = array();
                $todayDate = date('Y-m-d');
                for($i = 0; $i < count($_POST['code']); $i++){
                    if($_POST['code'][$i] != '')
                    {
                        $data[] = array(
                            'code' => $_POST['code'][$i],
                            'shop' => $_POST['shop'],
                            'memo' => $_POST['memo'],
                            'rate' => $_POST['rate'][$i],
                            'quantity' => $_POST['quantity'][$i],
                            'total' =>( $_POST['rate'][$i]*$_POST['quantity'][$i]),
                            'date' => $todayDate
                            );
                    }
                }
                $linksCount = count($data);
                if($linksCount){
                    $this->db->insert_batch('purchase', $data);
                }
                return $linksCount;
        }

我的主要问题是当执行autosave函数时,它会将所有数据插入数据库。它一次又一次地重复相同的数据。有人能帮我解决这个问题吗。

我假设您使用的是JS/jQuery的自动保存函数。在表单中添加一个隐藏字段,例如insert_id。在执行任何插入操作之前,请检查该字段是否有值。如果是:更新与insert_id对应的db行,否则,insert _id为空,因此需要插入。插入后,使用jQuery加载具有当前insert_id的隐藏字段。