终于明白了

2016-07-07 15:04 来源:www.chinab4c.com 作者:ecshop专家

在ecshop后台添加关联商品的时候,当我们搜索出关联商品的时候并且双击它的,这个时候已经向数据库插入了一条记录,此时的good_id还是0,link_goods_id是我们选择关联的那个商品的ID ,因为我们还没有点击提交,当我们点击提交的时候,就会更新一下数据库,把商品的id,good_id更新一下,这样如果我们操作了一半,还没有点击提交,但是点击了关联商品,这样的话在数据库里面就会有good_id=0的一项,所以在插入新商品信息的时候也就会有之前的delete语句,也就是

// 关联商品
$sql = "DELETE FROM " . $ecs->table('link_goods') .
" WHERE (goods_id = 0 OR link_goods_id = 0)" .
" AND admin_id = '$_SESSION[admin_id]'";
$db->query($sql);
$sql = "SELECT '0' AS goods_id, link_goods_id, is_double, '$_SESSION[admin_id]' AS admin_id" .
" FROM " . $ecs->table('link_goods') .
" WHERE goods_id = '$_REQUEST[goods_id]' ";
$res = $db->query($sql);
while ($row = $db->fetchRow($res))
{
$db->autoExecute($ecs->table('link_goods'), $row, 'INSERT');
}
$sql = "SELECT goods_id, '0' AS link_goods_id, is_double, '$_SESSION[admin_id]' AS admin_id" .
" FROM " . $ecs->table('link_goods') .
" WHERE link_goods_id = '$_REQUEST[goods_id]' ";
$res = $db->query($sql);
while ($row = $db->fetchRow($res))
{
$db->autoExecute($ecs->table('link_goods'), $row, 'INSERT');
}



但是我不明白,为什么要先插入一个,能不能等到提交的时候两个id一起插入吗?还请高手指点