1. PHP / Говнокод #17858

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    public function getProductAttributes($product_id) {
    	$product_attribute_data = array();
    
    	$product_attribute_query = $this->db->query("SELECT attribute_id FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' GROUP BY attribute_id");
    
    	foreach ($product_attribute_query->rows as $product_attribute) {
    		$product_attribute_description_data = array();
    
    		$product_attribute_description_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' AND attribute_id = '" . (int)$product_attribute['attribute_id'] . "'");
    
    		foreach ($product_attribute_description_query->rows as $product_attribute_description) {
    			$product_attribute_description_data[$product_attribute_description['language_id']] = array('text' => $product_attribute_description['text']);
    		}
    
    		$product_attribute_data[] = array(
    			'attribute_id'                  => $product_attribute['attribute_id'],
    			'product_attribute_description' => $product_attribute_description_data
    		);
    	}
    
    	return $product_attribute_data;
    }

    Opencart -> ModelCatalogProduct -> getProductAttributes
    Первым запросом в БД они берут IDы атрибутов, перебирают их циклом, в котором другим запросом берут всё, в том числе и те же IDы, из той же таблицы и снова перебирают строки циклом.

    Запостил: technobulka, 25 Марта 2015

    Комментарии (3) RSS

    • Да там забавный тип это все пишет. Я скидывал как-то его цитатки сюда.
      Ответить
    • Незнание SQL не избавляет от возмездия.
      Или он только с локальной БД работает?
      Ответить

    Добавить комментарий