Opencart. Непонятный ответ от бд

252
23 августа 2017, 19:16

Всем привет!

Мне нужно немножко модифицировать запрос к базе данных, в начале я попытался вывести ответ текущего запроса и впал в недоразумение, собственно поэтому я и создал эту тему.

Перейдем к сути, в файле catalog/model/catalog/category.php я нашел такую функцию:

public function getCategories($parent_id = 0) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "'  AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)");
return $query->rows; 
    /* Завардампил для вывода массива */ 
    /*
        echo '<pre>'; 
        var_dump($query->rows); 
        echo '</pre>'; 
    */ 
}

Она возвращает нужные категории товаров и вызывается в соответствующем контроллере.

В результате, я получил ответ такого типа:

array(1) {
  [0]=>
  array(18) {
    ["category_id"]=>
    string(3) "263"
    ["image"]=>
    string(37) "catalog/megamenu/mozaika po mater.jpg"
    ["parent_id"]=>
    string(2) "59"
    ["top"]=>
    string(1) "0"
    ["column"]=>
    string(1) "1"
    ["sort_order"]=>
    string(1) "0"
    ["status"]=>
    string(1) "1"
    ["date_added"]=>
    string(19) "2016-04-03 13:37:15"
    ["date_modified"]=>
    string(19) "2017-04-08 04:36:11"
    ["language_id"]=>
    string(1) "1"
    ["name"]=>
    string(23) "По материалу"
    ["description"]=>
    string(0) ""
    ["description_dop"]=>
    string(0) ""
    ["meta_title"]=>
    string(49) "Выбор мозаики по материалу"
    ["meta_h1"]=>
    string(0) ""
    ["meta_description"]=>
    string(49) "Выбор мозаики по материалу"
    ["meta_keyword"]=>
    string(0) ""
    ["store_id"]=>
    string(1) "0"
}
array(5) {
  [0]=>
  array(18) {
    ["category_id"]=>
    string(2) "59"
    ["image"]=>
    string(19) "catalog/mozaika.jpg"
    ["parent_id"]=>
    string(1) "0"
    ["top"]=>
    string(1) "1"
    ["column"]=>
    string(1) "1"
    ["sort_order"]=>
    string(1) "1"
    ["status"]=>
    string(1) "1"
    ["date_added"]=>
    string(19) "2014-05-08 05:15:49"
    ["date_modified"]=>
    string(19) "2017-08-06 20:11:35"
    ["language_id"]=>
    string(1) "1"
    ["name"]=>
    string(14) "Мозаика"
    ["description"]=>
    string(1123) "<p></p>
}
array(5) {
  [0]=>
  array(18) {
    ["category_id"]=>
    string(2) "59"
    ["image"]=>
    string(19) "catalog/mozaika.jpg"
    ["parent_id"]=>
    string(1) "0"
    ["top"]=>
    string(1) "1"
    ["column"]=>
    string(1) "1"
    ["sort_order"]=>
    string(1) "1"
    ["status"]=>
    string(1) "1"
    ["date_added"]=>
    string(19) "2014-05-08 05:15:49"
    ["date_modified"]=>
    string(19) "2017-08-06 20:11:35"
    ["language_id"]=>
    string(1) "1"
    ["name"]=>
    string(14) "Мозаика"
    ["description"]=>
    string(1123) "<p></p>
}

3 массива в ответе которые как бы сами по себе, т.е. на var_dump($query->rows[0]), var_dump($query->rows[1]) они по отдельности не выводятся. Что это вообще такое и как я могу достать первый из этих трех массивов.

Может быть я чего-то не понимаю но функция $query = $this->db->query(); исполняет запрос к бд и записывает ответ в переменную $query.