Chủ đề được gửi trong chuyên mục Open Cart bởi dcr_lena
hepl hướng giải quyết thuộc tính màu sắc sản phẩm
dcr_lena
hepl hướng giải quyết thuộc tính màu sắc sản phẩm
-
03-01-2012, 03:07 PM
dcr_lena
Thành Viên SVIT
Được cảm ơn 0 trong 0 bài viết
Đã viết 2 bài thảo luận
212 lượt xem
#1
hepl hướng giải quyết thuộc tính màu sắc sản phẩm
Mình hỏi code của mình như sau mà kết mình muốn kết quả mảng $images có đủ 3 trường như vậy có dữ liệu mà sao nó lại như thế này bạn nào biết góp ý cho mình với. Đang rất cần . help me !!!!:((
-code model
$images[] = array();
$attribute_data = $this->db->query("SELECT a.attribute_id, a.img, ad.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (a.attribute_id = pa.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND ad.language_id='".(int)$this->config->get('config_language_id') ."'");
foreach ($attribute_data->rows as $result) {
$images[] = array(
'attribute_id' => $result['attribute_id'],
'name' => $result['name'],
'img' => $result['img'],
);
}
$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
if ($query->num_rows) {
return array(
'product_id' => $query->row['product_id'],
'name' => $query->row['name'],
'description' => $query->row['description'],
'meta_description' => $query->row['meta_description'],
'meta_keyword' => $query->row['meta_keyword'],
'model' => $query->row['model'],
'sku' => $query->row['sku'],
'location' => $query->row['location'],
'quantity' => $query->row['quantity'],
'stock_status' => $query->row['stock_status'],
'image' => $query->row['image'],
'manufacturer_id' => $query->row['manufacturer_id'],
'manufacturer' => $query->row['manufacturer'],
'price' => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']),
'special' => $query->row['special'],
'reward' => $query->row['reward'],
'points' => $query->row['points'],
'tax_class_id' => $query->row['tax_class_id'],
'date_available' => $query->row['date_available'],
'weight' => $query->row['weight'],
'weight_class' => $query->row['weight_class'],
'length' => $query->row['length'],
'width' => $query->row['width'],
'height' => $query->row['height'],
'length_class' => $query->row['length_class'],
'subtract' => $query->row['subtract'],
'rating' => (int)$query->row['rating'],
'reviews' => $query->row['reviews'],
'minimum' => $query->row['minimum'],
'sort_order' => $query->row['sort_order'],
'status' => $query->row['status'],
'date_added' => $query->row['date_added'],
'date_modified' => $query->row['date_modified'],
'viewed' => $query->row['viewed'],
'images' => $images
);
} else {
return false;
}
}
-code trong controller
foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
if ($product_info) {
if ($product_info['image']) {
$image = $this->model_tool_image->resize($product_info['image'], $this->config->get('featured_' . $module . '_image_width'), $this->config->get('featured_' . $module . '_image_height'));
} else {
$image = false;
}
if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = false;
}
if ((float)$product_info['special']) {
$special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}
if ($this->config->get('config_review_status')) {
$rating = $product_info['rating'];
} else {
$rating = false;
}
$this->data['products'][] = array(
'product_id' => $product_info['product_id'],
'thumb' => $image,
'name' => $product_info['name'],
'price' => $price,
'special' => $special,
'rating' => $rating,
'reviews' => sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']),
'href' => $this->url->links('product/product', 'product_id=' . $product_info['product_id']),
'img' => $product_info['images']
);
}
}
var_dump($this->data['products']);exit;
-var_dump đc kết quả thế này :
array 0 => array 'product_id' => string '85' (length=2) 'thumb' => string 'http://localhost/giakhanh/image/data/samsung-80x80.jpg' (length=54) 'name' => string 'Samsung Galaxy Note ' (length=21) 'price' => string '$0.00' (length=5) 'special' => boolean false 'rating' => int 0 'reviews' => string 'Dựa trên 0 đánh giá.' (length=26) 'href' => string 'http://localhost/giakhanh/dien-thoai-di-dong/samsung-galaxy-note' (length=64) 'img' => array 0 => array ... 1 => array 'product_id' => string '86' (length=2) 'thumb' => string 'http://localhost/giakhanh/image/data/samsung-80x80.jpg' (length=54) 'name' => string 'Samsung Galaxy W I8150 ' (length=24) 'price' => string '$0.00' (length=5) 'special' => boolean false 'rating' => int 0 'reviews' => string 'Dựa trên 0 đánh giá.' (length=26) 'href' => string 'http://localhost/giakhanh/dien-thoai-di-dong/samsung-galaxy-w-I8150 ' (length=68) 'img' => array 0 => array ... 2 => array 'product_id' => string '87' (length=2) 'thumb' => string 'http://localhost/giakhanh/image/data/samsung-80x80.jpg' (length=54) 'name' => string 'Samsung Galaxy Y Pro B5510' (length=26) 'price' => string '$0.00' (length=5) 'special' => boolean false 'rating' => int 0 'reviews' => string 'Dựa trên 0 đánh giá.' (length=26) 'href' => string 'http://localhost/giakhanh/dien-thoai-di-dong/samsung-galaxy-y-pro-b5510' (length=71) 'img' => array 0 => array ... 3 => array 'product_id' => string '82' (length=2) 'thumb' => string 'http://localhost/giakhanh/image/data/txt-Pro_new_c..l_classic-80x80.jpg' (length=71) 'name' => string 'Sony Ericsson txt pro' (length=21) 'price' => string '$13,000.00' (length=10) 'special' => string '$11,999.00' (length=10) 'rating' => int 0 'reviews' => string 'Dựa trên 0 đánh giá.' (length=26) 'href' => string 'http://localhost/giakhanh/dien-thoai-di-dong/sony-ricsson-txt-pro ' (length=66) 'img' => array 0 => array ... 1 => array ... 2 => array ... 3 => array ...
Chủ đề mới cùng chuyên mục
-