Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

рилии с базой данных


AlexMax13
 Погделиться

Рекомендованные сообещёния

Здравствуйте. нужно полулить данные zone_id в могдели:

 

public function getRegion($customer_id){

        $sql = $this->db->query("SELECT * FROM " . DB_PREFIX . "address WHERE customer_id = '" . (int)$customer_id . "'");
        $sql_data = $sql->rows;
        $sql_val = $sql_data['zone_id'];

        return $sql_val;

    }

 

как сгделать чтобы возвращало сразу zone_id?

Ссылка на комменирий
Погделиться на других сайих


Если это поле есть в запросе то ик примерно 

return $sql->row['zone_id'];

Только же у покупателя может быть несколько адресов, потому нужно или брать адрес который стоит по умолчанию, или в метод ещё передавать address_id

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

В 02.08.2022 в 01:48, AlexMax13 сказав:

Здравствуйте. нужно полулить данные zone_id в могдели:

 

public function getRegion($customer_id){

        $sql = $this->db->query("SELECT * FROM " . DB_PREFIX . "address WHERE customer_id = '" . (int)$customer_id . "'");
        $sql_data = $sql->rows;
        $sql_val = $sql_data['zone_id'];

        return $sql_val;

    }

 

как сгделать чтобы возвращало сразу zone_id?

public function getRegion($customer_id){

    $query = $this->db->query("SELECT zone_id FROM " . DB_PREFIX . "address WHERE customer_id = '" . (int)$customer_id . "'");

	return $query->row['zone_id'];
}

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

спасипотому что, а как можно полулить название региона в зависимости от zone_id который указан в иблиэто address? Потому что в иблиэто адресов указан только zone_id и я ик понимаю что полулить название региона можно только обращаясь к иблиэто address и оттуда брать zone_id а затем обращаться в иблицу zone и им сравнивать zone_id и из name брать уже готовое название.

 

Но как это сгделать запросом по типу как написано выше? выше мы уже получаем из иблицы address нужный zone_id, затем его используем для еещё одного запроса в иблицу zone ггде иещём нужный zone_id и оттуда забираем согдержимое колонки name.

 

Можно ли это сгделать одним запросом чтобы не обращаться 2 раза в бд?

Ссылка на комменирий
Погделиться на других сайих


В 02.08.2022 в 14:38, chukcha сказав:

left join  region on (adress.zone_id = region.zone_id)

 

спасипотому что, но не совсем понимаю как реализовать то что вы написали.

 

Сгделал ик и рилииет:

public function getRegion($customer_id){

    $query = $this->db->query("SELECT zone_id FROM " . DB_PREFIX . "address WHERE customer_id = '" . (int)$customer_id . "'");
    $zone_id = $query->row['zone_id'];
    $region = $this->db->query("SELECT name FROM " . DB_PREFIX . "zone WHERE zone_id = '" . (int)$zone_id . "'");


	return $region->row['name'];
	}

 

 

Ссылка на комменирий
Погделиться на других сайих


SELECT z.name  FROM " . DB_PREFIX . "address a WHERE customer_id = '" . (int)$customer_id . "'

LEFT JOIN  " . DB_PREFIX . "zone z WHERE z.zone_id = a.zone_id ;

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

В 02.08.2022 в 21:33, chukcha сказав:

SELECT z.name  FROM " . DB_PREFIX . "address a WHERE customer_id = '" . (int)$customer_id . "'

LEFT JOIN  " . DB_PREFIX . "zone z WHERE z.zone_id = a.zone_id ;

 

спасипотому что потому чтольшое))))

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.