订单php
‘壹’ php里面商城订单查询代码怎么写
aaeer.com里面的订单查询代码:
订单号:
订单查询
订单号:
<input name="ono" type="text" id="ono" width="150" height="20" />//订单号输入框<a href="javascript:;" class="k_ajax" rel="{URL:'/portal/cart.php',CMD:'def',ono:$('#ono').val()}">订单查询</a> //ajax提交,并获得订单详情。
ajax返回的数据,自己查一下代码吧。
toymen发表于:11-11-08 22:59 5楼[回复] #Top#toymen
人气:516
积分:3418
金币:23620
KC元老
ajax查询订单状态,添加到../portal/cart.php中。
/**
处理订单反馈信息页
*/
function king_ajax_def(){
global $king;
// setcookie('KingCMS_Cart',serialize($cart),time()+86400000,$king->config('inst'));$ono=kc_get('ono',2,1);
$array_black=str_split('<>'"%');
if(!$data=$king->db->getRows_one("select ono,oid,nstatus,kname,nnumber,ntotal,kfeedback,eid,nexpress from %s_orders where ono=$ono")){kc_error($king->lang->get('system/error/onoerr'));}
$oid=$data['oid'];
$status=$data['nstatus'];
$s='<table class="k_table_list" cellspacing="0">';$s.='<caption>'.$king->lang->get('portal/cart/prodinfo').'(请牢记您的订单号,以便支付与查询!)</caption>';$s.='<tr><th class="w150">'.$king->lang->get('portal/cart/youorders').'</th><td><strong class="red">'.$data['ono'].'</strong></td></tr>';$s.='<tr><th>'.$king->lang->get('portal/cart/prodname').'</th><td>'.$data['kname'].'</td></tr>';$s.='<tr><th>'.$king->lang->get('portal/cart/total').'</th><td>'.$data['nnumber'].'件</td></tr>';$s.='<tr><th>'.$king->lang->get('portal/cart/alltotal').'</th><td>'.number_format($data['ntotal'],2).'</td></tr>';$s.='<tr><th>'.$king->lang->get('portal/cart/rstatus').'</th><td>'.$data['nstatus'].'</td></tr>';$s.='</table>';
$s.='<p></p>';
$s.='<br/>';
$height=0;
if($status<3){
$s.='<p><a href="javascript:;" rel="{URL:''.$king->config('inst').'portal/cart.php',CMD:'payment',ono:'.$ono.',IS:1}" class="k_ajax">'.$king->lang->get('portal/orders/viewmethod').'</a></p>';}
kc_ajax($king->lang->get('portal/cart/myorders'),$s,0,'',500,310+($height*50));}
其中<td>'.$data['nstatus'].'</td></tr>'; 这句输出的是订单状态的id数字,需要转换为文字,不懂php,自己改吧。
数字对应的文字:
1:交易创建
2:等待买家付款
3:买家付款成功
4:发货成功
5:确认收货,交易成功
6:交易关闭,未完成超时关闭
7:修改交易价格成功
8:买家申请退款
9:退款成功
10:退款关闭
11:修改交易价格
‘贰’ PHP 订单修改
在表B中添加表A 订单ID做外键 然后每次添加新订单或者修改订购数量事 都要调用一个方法 这个方法就是判断订单ID是否被重置 重置说明订购数量改变了
‘叁’ PHP在线订单问题
如果您的PHP在线订单是个独立的系统,最简单的办法是网站前台做个跳转链接改旅型,跳转地址为php订单系统首页的地址,例如:/dd/index.php;
如果这个系统需要前台的表单传值,您用DW设计好文本框之类的表单,get到php的处理页;
织梦有个商品频道,里面也有订单系统(比较简单一点);
因为不知道您下载的PHP系统是什么样子的东东,解释得太清楚核猜不镇卜太可能,或者您可以给个下载链接我去下载回来测试下。
‘肆’ PHP 检查订单是否有效。
真有1000条呀,那你的压力可大哦,几十、百来条我还有办法对付,不过GET所有参数的总长度被限制在255个字符内,所以你暂时应该可以用我下面的方法:
$order_id = $_GET["id"];//获取传过来的订单号。1000条理论上可行,不过效率可能亏塌很糟糕,不过销余圆你可以放心毁橘的是GET传不了那么多。
$str = $order_id;
$array = explode(',', $str);//把传过来的字符串转换成数组。
$sql = mssql_query("select count(*) from new_orders where order_id = in($str)");
list($nums)=mysql_fetch_row($sql);
mysql_free_result($sql);
if ($nums!=count($array)) echo "提交的订单中只有 $nums 个是有效的,请检查!";
‘伍’ php 订单系统的工作流程
先把 货物种类、数量、价格入库到表中分别获取其id
在把id插入和其他数据到另外一张表。
‘陆’ php订单统计 每天有n个订单 每个订单有Y个产品 每个产品有x个数量 怎么能算出 每天售出多少个产品
这个可以用sql语句实现
例如这有2个表
订单表---id号
产品表---id号,所属订单id号,商品类型,商品数量
那么输出的时候就这样
SELECT SUM('商品数量') FROM 产品表 WHERE 所属订单id号 = '指定订单'
这算出来的是该订单的商品总量
你把今天所有订单的商品数量加起来,就是每天出售的总量了,至于这个怎么做,就是做个循环就好了
‘柒’ php,订单详情表与订单表怎么关联
订单表里面放订单id,总得价格,下单人的信息,配送信息,折扣信息,订单状态,而订单详情里面存放订单中得商品,商品价格,商品sku信息等商品明细信息,同时也存订单id,通过订单id关系起来两个表
‘捌’ 订单超时,活动过期解决方案:php监听redis键重复触发引发事件
订单超时,活动过期解决方案:php监听redis键重复触发引发事件
Redis的2.8.0版本之后可用,键空间消息(Redis Keyspace Notifications),配合2.0.0版本之后的SUBSCRIBE 可以完成这个定时任务的操作了,定时的单位是秒。
1.我们先订阅频道称为 redisChat
2.现在,我们重新开启个redis客户端,然后在同一个频道redisChat发布消息,订阅者可以接收到消息。
接收到的消息如下:
3.Key过期事件的Redis配置
需要这里配置notify-keyspace-events的参数为“EX” .X代表了过期事件。notify-keyspace-events “Ex”保存配置后,重启Redis的服务,使配置生效。
PHP Redis实现订阅键空间通知
redis实例化类:
redis.class.php
1个
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18岁
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//遇到类别重复的报错,所有叫Redis2
classRedis2
{
private$redis;
publicfunction__construct($host= '127.0.0.1', $port= 6379)
{
$this->redis = newRedis();
$this->redis->connect($host, $port);
}
publicfunctionsetex($key, $time, $val)
{
return$this->redis->setex($key, $time, $val);
}
publicfunctionset($key, $val)
{
return$this->redis->set($key, $val);
}
publicfunctionget($key)
{
return$this->redis->get($key);
}
publicfunctionexpire($key= null, $time= 0)
{
return$this->redis->expire($key, $time);
}
publicfunctionpsubscribe($patterns= array(), $callback)
{
$this->redis->psubscribe($patterns, $callback);
}
publicfunctionsetOption()
{
$this->redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);
}
}
过期事件的订阅:
psubscribe.php
1个
2
3
4
5
6
7
8
9
10
11
12
13
14
15
require_once'./Redis.class.php';
$redis= new\Redis2();
// 解决Redis客户端订阅时候超时情况
$redis->setOption();
$redis->psubscribe(array('__keyevent@0__:expired'), 'keyCallback');
// 回调函数,这里写处理逻辑
functionkeyCallback($redis, $pattern, $chan, $msg)
{
echo"Pattern: $pattern\n";
echo"Channel: $chan\n";
echo"Payl
oad: $msg\n\n";
//keyCallback为订阅事件后的回调函数,这里写业务处理逻辑,
//比如前面提到的商品不支付自动撤单,这里就可以根据订单id,来实现自动撤单
}
设置过期事件:
index.php
1个
2
3
4
require_once'./Redis.class.php';
$redis= new\Redis2();
$order_id= 123;
$redis->setex('order_id',10,$order_id);
先用命令行模式执行 psubscribe.php
在浏览器访问 index.php
效果如下:
‘玖’ php 如何生成订单号
订单号一般是根据用户ID,购买时间,商品ID生成的,
比如用户ID:123,购买时间:1353364885,商品ID:567,
则订单号可以是:123-1353364885-567