Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

работа с базой данных


Recommended Posts

Здравствуйте. нужно получить данные 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
Надіслати
Поділитися на інших сайтах

  • 6 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.