• ecshop删除商品函数


    /**
     * 从回收站删除多个商品
     * @param   mix     $goods_id   商品id列表:可以逗号格开,也可以是数组
     * @return  void
     */
    function delete_goods($goods_id)
    {
        if (empty($goods_id))
        {
            return;
        }
    
        /* 取得有效商品id */
        $sql = "SELECT DISTINCT goods_id FROM " . $GLOBALS['ecs']->table('goods') .
                " WHERE goods_id " . db_create_in($goods_id) . " AND is_delete = 1";
        $goods_id = $GLOBALS['db']->getCol($sql);
        if (empty($goods_id))
        {
            return;
        }
    
        /* 删除商品图片和轮播图片文件 */
        $sql = "SELECT goods_thumb, goods_img, original_img " .
                "FROM " . $GLOBALS['ecs']->table('goods') .
                " WHERE goods_id " . db_create_in($goods_id);
        $res = $GLOBALS['db']->query($sql);
        while ($goods = $GLOBALS['db']->fetchRow($res))
        {
            if (!empty($goods['goods_thumb']))
            {
                @unlink('../' . $goods['goods_thumb']); // 节约空间
            }
            if (!empty($goods['goods_img']))
            {
                @unlink('../' . $goods['goods_img']);
            }
            if (!empty($goods['original_img']))
            {
                @unlink('../' . $goods['original_img']);
            }
        }
    
        /* 删除商品 */
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('goods') .
                " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
    
        /* 删除商品的货品记录 */
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('products') .
                " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
    
        /* 删除商品相册的图片文件 */
        $sql = "SELECT img_url, thumb_url, img_original " .
                "FROM " . $GLOBALS['ecs']->table('goods_gallery') .
                " WHERE goods_id " . db_create_in($goods_id);
        $res = $GLOBALS['db']->query($sql);
        while ($row = $GLOBALS['db']->fetchRow($res))
        {
            if (!empty($row['img_url']))
            {
                @unlink('../' . $row['img_url']);
            }
            if (!empty($row['thumb_url']))
            {
                @unlink('../' . $row['thumb_url']);
            }
            if (!empty($row['img_original']))
            {
                @unlink('../' . $row['img_original']);
            }
        }
    
        /* 删除商品相册 */
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('goods_gallery') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
    
        /* 删除相关表记录 */
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('collect_goods') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('goods_article') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('goods_attr') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('goods_cat') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('member_price') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('group_goods') . " WHERE parent_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('group_goods') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('link_goods') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('link_goods') . " WHERE link_goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('tag') . " WHERE goods_id " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('comment') . " WHERE comment_type = 0 AND id_value " . db_create_in($goods_id);
        $GLOBALS['db']->query($sql);
    
        /* 删除相应虚拟商品记录 */
        $sql = "DELETE FROM " . $GLOBALS['ecs']->table('virtual_card') . " WHERE goods_id " . db_create_in($goods_id);
        if (!$GLOBALS['db']->query($sql, 'SILENT') && $GLOBALS['db']->errno() != 1146)
        {
            die($GLOBALS['db']->error());
        }
    
        /* 清除缓存 */
        clear_cache_files();
    }

    竟然删了这么多东西

  • 相关阅读:
    高德引擎构建及持续集成技术演进之路
    Java的传值调用
    Java中真的只有值传递么?
    Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables
    Redis入门(四)-Java操作Redis
    SecureCRT远程连接The remote system refused the connection问题
    [需求设计]从一个小需求感受Redis的独特魅力
    Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack
    编译Netty源码遇到的一些问题-缺少io.netty.util.collection包
    Linux使用alias自定义命令自定义快捷键
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/3992785.html
Copyright © 2020-2023  润新知