"PHP" / Говнокод #17858 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 technobulka, (Updated )

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8