mysql中订单产品名,Ecshop后台订单列表增加”商品名”检索字段

近期ecshop网站做活动,统计商品订单量的时候没有按商品名搜索的选项,只能手动查询。这样效率很低下,而且容易出错。

现在为列表增加一个简单的“按商品名搜索”表单项。效果如下图

14350UI0-0.jpg

涉及到2个文件,分别是/admin/order.php,/admin/templates/order_list.htm,下面详说。

第一步,增加表单项

在/admin/templates/order_list.htm第11行下面增加

1

商品名

这样,代码上下文基本为

1

{$lang.order_sn}

2

{$lang.consignee|escape}

3

商品名

4

{$lang.all_status}

5

第二步,js获取值

在/admin/order_list.htm第105行下面增加

1

listTable.filter['goods_name'] = Utils.trim(document.forms['searchForm'].elements['goods_name'].value);

这样,代码上下文基本为

1

/**

2

* 搜索订单

3

*/

4

function searchOrder()

5

{

6

listTable.filter['order_sn'] = Utils.trim(document.forms['searchForm'].elements['order_sn'].value);

7

listTable.filter['consignee'] = Utils.trim(document.forms['searchForm'].elements['consignee'].value);

8

listTable.filter['goods_name'] = Utils.trim(document.forms['searchForm'].elements['goods_name'].value);

9

listTable.filter['composite_status'] = document.forms['searchForm'].elements['status'].value;

10

listTable.filter['page'] = 1;

11

listTable.loadList();

12

}

第三步,接收参数并处理

3.1)php文件接收参数并准备拼接sql

在/admin/order.php第4874行找到“$where = ‘WHERE 1 ‘;”,在下面增加

1

$join_goods =" ";

2

if ($filter['goods_name'])

3

{

4

$join_goods =" LEFT JOIN " .$GLOBALS['ecs']->table('order_goods')." AS og ON o.order_id=og.order_id LEFT JOIN " .$GLOBALS['ecs']->table('goods')." AS g ON g.goods_id = og.goods_id ";

5

$where .=" AND g.goods_name LIKE '%" . mysql_like_quote($filter['goods_name']) . "%'";

6

}

3.2)拼接sql

分别更改/admin/order.php第5025,5029,5041行sql语句为下面三句代码

1,

1

$sql ="SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('order_info') ." AS o ,".

2

$GLOBALS['ecs']->table('users') ." AS u ".$join_goods.$where;

2.

1

$sql ="SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('order_info') ." AS o ".$join_goods.$where;

3.

1

/* 查询 */

2

$sql ="SELECT o.order_id, o.order_sn, o.add_time, o.order_status, o.shipping_status, o.order_amount, o.money_paid," .

3

"o.pay_status, o.consignee, o.address, o.email, o.tel, o.extension_code, o.extension_id, " .

4

"(" . order_amount_field('o.') .") AS total_fee, " .

5

"IFNULL(u.user_name, '" .$GLOBALS['_LANG']['anonymous']. "') AS buyer ".

6

" FROM " .$GLOBALS['ecs']->table('order_info') ." AS o " .

7

" LEFT JOIN " .$GLOBALS['ecs']->table('users')." AS u ON u.user_id=o.user_id ".$join_goods.$where .

8

" ORDER BY $filter[sort_by] $filter[sort_order] ".

9

" LIMIT " . ($filter['page'] - 1) *$filter['page_size'] .",$filter[page_size]";

完成,这样就可以了

有几点可以改进:表单名可以存到系统语言包;可以按照此方法在“订单查询”那个大表单里扩展更多动能,紧急情况就先这样…

为了搜索订单更精准,决定完成之前说的改进:在“订单查询”那个大表单里扩展”商品名”检索功能,相当简单:

在/admin/templates/order_query.htm第七行下面增加

1

2

商品名

3

4

即可

这个过程中js自动获取了表单的所有项目,而且之前我们已经完成了/admin/order.php中order_list()函数的改造

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值