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

时间:2012-09-10 12:00:47

标签: php sql codeigniter 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;

        }

我的主要问题是当执行自动保存功能时,它会插入数据库中的所有数据。它会在一定程度上一次又一次地重复相同的数据。任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我假设您正在使用JS / jQuery进行自动保存功能。在表单中添加隐藏字段,例如insert_id。在进行任何插入之前,请检查该字段是否具有值。如果是这样:更新对应于insert_id的db行,否则,insert_id为空,因此您需要插入。插入后,使用jQuery加载隐藏字段和当前insert_id。