Có thể bạn quan tâm


Đang tải thanh công cụ tìm kiếm ...

Thăm dò: Lý do bạn lao đầu vào nghành Code

Đây là phiếu bình chọn quần chúng , tất cả mọi thành viên đều nhìn thấy và có quyền bình chọn. Còn chời gì nữa mời bạn hãy lựa chọn

Hiện kết quả từ 1 tới 1 của 1

hepl hướng giải quyết thuộc tính màu sắc sản phẩm

Chủ đề được gửi trong chuyên mục Open Cart bởi dcr_lena


  1. 03-01-2012, 03:07 PM

    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 ...

Thông tin đề tài

Users Browsing this Thread

Hiện đang có 1 người đang xem bài viết này. (0 thành viên và 1 khách)

Visitors found this page by searching for:

Updating