我已经在Opencart网站上工作了几天。旧开发人员在旧表中保存了一些数据,其中有一列名为cart
。在本专栏中,我有数据可以让我(我猜)显示订购的产品,数量和价格。我需要创建一个foreach()
循环并显示此信息。我该怎么做 ?已保存数据的一个示例:a:3:{i:144;s:1:"2";i:172;i:2;i:193;i:1;}
答案 0 :(得分:0)
这称为serialized array。在最基本的级别,您可以unserialize()
并循环浏览购物车数据,如下所示:
$cart = unserialize('a:3:{i:144;s:1:"2";i:172;i:2;i:193;i:1;}');
foreach ($cart as $product_id => $quantity) {
echo "Product ID: $product_id\n";
echo "Quantity: $quantity\n\n";
}
<强>输出:强>
Product ID: 144
Quantity: 2
Product ID: 172
Quantity: 2
Product ID: 193
Quantity: 1
如果涉及的选项变得更复杂,而不是复制购物车库功能,那么最好只需恢复购物车并直接使用Opencart的核心迭代产品:
// query the database
$query = $this->db->query("SELECT cart FROM " . DB_PREFIX . "table_name WHERE customer_id = '123'")->row;
// unserialize the resulting row
$cart = unserialize($query['cart']);
// initialize the session array
$this->session->data['cart'] = array();
// restore cart to session
foreach ($cart as $key => $value) {
$this->session->data['cart'][$key] = $value;
}
// loop through products
foreach ($this->cart->getProducts() as $product) {
print_r($product);
}