开放式跟踪

时间:2015-03-27 16:28:34

标签: php mysql opencart

我试图在opencart上显示产品的跟踪号。

所以一旦订单下达。然后我添加一个跟踪号码。我希望客户能够看到订单历史记录。

// get tracking details
$sql = 'SELECT * FROM '.DB_PREFIX.'order_history'.`tracking_number`;

$query = $this->db->query($sql);
$rates = array();
foreach($query->rows as $result){
    $rates[] = $result;
}
  

$ this-> data ['tracking'] = $ tracking;

这也将在order.php

中进行

这是我写的但是它不起作用,我不是php的专家,我涉猎它。希望有人可以指出我正确的方向,

所以这段代码会进入controller / account / order.php

然后在模板上我假设我可以插入 <?php echo $tracking; ?>显示跟踪回复。

提前感谢。

1 个答案:

答案 0 :(得分:0)

副手,我可以看到此代码会导致错误,因为你的引号/反引号不合适:

CASE (CASE WHEN l.dnames = 'II-SH' THEN 'IW' 
     WHEN l.dnames = 'IIC-SH' THEN 'IW' 
     WHEN l.dnames = 'CD' THEN 'RPFX' 
     WHEN l.dnames LIKE '%-%' THEN SUBSTR(l.dnames, INSTR(l.dnames, '-',2,1)+1, 20 )
     WHEN l.dnames LIKE 'EXCR%' THEN SUBSTR(l.dnames,  (INSTR(l.dnames, 'EXCR',1,1)+4),20)
     WHEN l.dnames = 'EX' AND l.ditems LIKE '%/%' THEN REPLACE(SUBSTR(l.ditems, 1,INSTR(l.ditems, '/',1)-1),'SINV')
     WHEN l.dnames = 'EX' THEN REGEXP_REPLACE(REPLACE(REPLACE(l.ditems,'SINV'),'INV'), '[0-9]','')
     WHEN l.dnames LIKE 'EX%' THEN SUBSTR(l.dnames, INSTR(l.dnames, 'EX',1)+2 ,20)
     ELSE NULL 
     END)
WHEN IN ('BA', 'BG', 'BT') THEN 'First'
WHEN IN ('BW', 'PF', 'SS') THEN 'Second'
WHEN IN ('TC', 'NE') THEN 'Third'
ELSE NULL
END AS DGROUP

这些方面应该更多:

$sql = 'SELECT * FROM '.DB_PREFIX.'order_history'.`tracking_number`;

并且,假设您想要提取特定于订单的跟踪#:

$sql = "SELECT `tracking_number` FROM `".DB_PREFIX."order_history`";

在准备MySQL查询时帮自己一个忙,并使用双引号。用单引号包装你的东西更容易,而不必逃避。

至于代码的其余部分,这些不是费率而是跟踪数字。假设每个订单会有一个跟踪号码返回,您可以将其包含在一行代码中,如下所示:

$sql = "SELECT `tracking_number` 
        FROM `".DB_PREFIX."order_history`
        WHERE `order_id` = 'MUFFINS'";

但是,如果您要将多个跟踪号与订单关联,您可以在order_history表中插入BLOB列并插入/查询序列化数据,或者完全创建一个单独的表,其中多行可以与单个订单ID相关联。