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

Не передает значение id из одной таблицы в другую


user0880

Recommended Posts

Здравствуйте.
Пытаюсь связать две таблицы, суть такова, в одной таблицы текстовые записи храниться, в другой  картинки, которых может быть несколько к одной id. Это все дело делаю в блоге ocstore

В моделе  прописываю 

public function addArticle($data) {
		if ($data['date_added'] == '0000-00-00') {
			$data['date_added'] = "NOW()";
		}

		$this->db->query("INSERT INTO " . DB_PREFIX . "oct_blogarticle SET date_available = '" . $this->db->escape($data['date_available']) . "', status = '" . (int)$data['status'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = '" . $this->db->escape($data['date_added']) . "', date_modified = NOW()");

		$blogarticle_id = $this->db->getLastId();
		
		if (isset($data['banner_image'])) {
			foreach ($data['banner_image'] as $banner_image) {
				$this->db->query("
					INSERT INTO `" . DB_PREFIX . "banner_image`
					SET
			            blogarticle_id = '" . (int)$blogarticle_id . "',
			            title = '" .  $this->db->escape($banner_image['title']) . "',
			            text = '" .  $this->db->escape($banner_image['text']) . "',
			            button = '" .  $this->db->escape($banner_image['button']) . "',
			            sort = '" . (int)$banner_image['sort'] . "'
		        ");

				$banner_image_id = $this->db->getLastId();

				foreach ($banner_image['banner_image_description'] as $language_id => $banner_image_description) {
					$this->db->query("
			            INSERT INTO `" . DB_PREFIX . "banner_image_description`
			            SET
							banner_image_id = '" . (int)$banner_image_id . "',
							language_id = '" . (int)$language_id . "',
							blogarticle_id = '" . (int)$blogarticle_id . "',
							image = '" .  $this->db->escape($banner_image['image']) . "'
					");
				}
			}
		}

.....

 

В таблице banner_image поле banner_image_id AUTO_INCREMENT стоит, туда все записывает хорошо, а вот в таблицу banner_image_description передается 0, а не значение из предыдущей таблицы при добавлении данных в поле banner_image_id . 

Подскажите, как поступить, где я не прав?

Надіслати
Поділитися на інших сайтах


А покажите структуры таблиц banner_image и banner_image_description.
Ибо поверхностно (если заданы PRIMARY) всё должно работать.
Для banner_image_id AUTO_INCREMENT не так важен, как PRIMARY
Ибо функция getLastId() возвращает значение ключа, а не поля с аутоинкрементом.

Надіслати
Поділитися на інших сайтах

34 минуты назад, nogocuHoBuk сказал:

А покажите структуры таблиц banner_image и banner_image_description.
Ибо поверхностно (если заданы PRIMARY) всё должно работать.
Для banner_image_id AUTO_INCREMENT не так важен, как PRIMARY
Ибо функция getLastId() возвращает значение ключа, а не поля с аутоинкрементом.

 

 

Спойлер

Screenshot_3.png

 

 

Спойлер

Screenshot_5.png

 

Змінено користувачем user0880
Надіслати
Поділитися на інших сайтах


@user0880, поместите картинки, плиз, под спойлер.
И вопрос в картинках:
 

Спойлер

image.png.36e78f4d9b87186a994a7c4a85993abd.png

Но при этом:
 

Спойлер

image.thumb.png.9466e43597a7e9964ccfa1ae51afedbb.png


У Вас не происходит вставки из-за отсутствия поля, следовательно ласт_инсерт_ид = 0

  • +1 1
Надіслати
Поділитися на інших сайтах

1 час назад, nogocuHoBuk сказал:

@user0880, поместите картинки, плиз, под спойлер.
И вопрос в картинках:
 

  Показать контент

image.png.36e78f4d9b87186a994a7c4a85993abd.png

Но при этом:
 

  Показать контент

image.thumb.png.9466e43597a7e9964ccfa1ae51afedbb.png


У Вас не происходит вставки из-за отсутствия поля, следовательно ласт_инсерт_ид = 0

Да, как же глупо и невнимательно. Спасибо большое за помощь!

Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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