我试图在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; ?>
显示跟踪回复。
提前感谢。
答案 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相关联。