高价求解决办法 通过数据库命令删除指定订单

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

高价求解决办法

可以通过后台的数据库命令查询,删除指定订单号的订单

有能力的朋友请联系我
QQ:403511511

回答:
不错,好的内容,学习了。

我可以给你做个小的CS客户端删除。需要的话联系QQ:1256143500

这个数据库中删除指定的订单其实很简单,不过订单相关一些 发货、付款等操作记录,不知道要如何处理?

DELETE FROM `ecshop`.`ecs_order_info` WHERE `order_id`=你的order_id;
DELETE FROM `ecshop`.`ecs_order_goods` WHERE `order_id`=你的order_id;
DELETE FROM `ecshop`.`ecs_order_action` WHERE `order_id`=你的order_id;

要删除的东西有很多。order_info ,order_goods,还有很多log都是需要删除的。不然就会造成数据库冗余

ecs_order_action 就是操作记录, 数据库冗余是指由于数据库设计不完善导致存储多余的相同数据。
跟垃圾数据是两码事。




那你认为你的做法是正确的。没问题的?

有什么问题,我洗耳恭听。 真正看ecshop代码有一周了,肯定有我不知道的东西。

再重申一遍 数据库冗余 不是指 垃圾数据哈

其实一般的B2C应用是不允许用户删除订单的,比如magento默认的程序对订单都不能编辑,增删改订单商品。有这种需求都是通过第三方模块实现,比如order_editor.

elseif (isset($_POST['remove']))
{
$require_note = false;
$operation = 'remove';
if (!$batch)
{
/* 检查能否操作 */
$order = order_info($order_id);
$operable_list = operable_list($order);
if (!isset($operable_list['remove']))
{
die('Hacking attempt');
}

/* 删除订单 */
$db->query("DELETE FROM ".$ecs->table('order_info'). " WHERE order_id = '$order_id'");
$db->query("DELETE FROM ".$ecs->table('order_goods'). " WHERE order_id = '$order_id'");
$db->query("DELETE FROM ".$ecs->table('order_action'). " WHERE order_id = '$order_id'");
$action_array = array('delivery', 'back');
del_delivery($order_id, $action_array);

/* todo 记录日志 */
admin_log($order['order_sn'], 'remove', 'order');

/* 返回 */
sys_msg($_LANG['order_removed'], 0, array(array('href'=>'order.php?act=list&' . list_link_postfix(), 'text' => $_LANG['return_list'])));
}