Хобрук: Ваш путь к мастерству в программировании

Как добавить записи в базу данных с помощью объединенной таблицы - codeigniter

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

объединенная таблица выглядит так:

bedrijfcategorieen
------------------
idbedrijfcat
idbedrijven
idcategorieen

Где idbedrijven — это идентификатор моей таблицы фабрик.

Моя функция контроллера для добавления фабрик:

function bedrijven()
{
    $data['options'] = $ddmenu;
    $this->load->view('members/header');
    $this->load->view('members/editform', $data);
    $this->load->view('members/footer');
}

function addbedrijven()
{
    $this->members_model->addbedrijf();
    redirect('members/index');
}

моя модельная функция для добавления фабрик:

function addbedrijf()
{
    $data = array(
       'idbedrijven' => $idbedrijven,
       'Bedrijfsnaam' => $this->input->post('Bedrijfsnaam'),
       'Postcode' => $this->input->post('Postcode'),
       'Plaats' => $this->input->post('Plaats'),
       'Telefoonnummer' => $this->input->post('Telefoonnummer'),
       'Email' => $this->input->post('Email'),
       'Website' => $this->input->post('Website'),
       'Profiel' => $this->input->post('Profiel'),
       'Adres' => $this->input->post('Adres'),
       'logo' => $this->input->post('logo')
    );

    $this->db->insert('bedrijven', $data);
}

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

Я пробовал where('bedrijfcategorieen.idbedrijven = idbedrijven, но это не сработало.


схема таблицы

factories
---------
idfactories
factoryname
adress
postcode
country
telephone
...
...


categories
----------
idcategories
category

factorycategories
-----------------
idfactorycat
idfactories
idcategories


  • Можете ли вы добавить свой запрос на вставку? 20.04.2013
  • я уже отправил свой запрос на вставку. это функция модели. 21.04.2013

Ответы:


1

Если я вас правильно понял - вы хотите добавить записи в две разные таблицы через JOIN. Это невозможно. У вас будет два отдельных оператора вставки для обеих таблиц.

Взгляните на документацию Active Record http://ellislab.com/codeigniter/user-guide/database/helpers.html и прочтите о $this->db->insert_id(); Это может дать вам подсказки о том, как написать оператор вставки.

22.04.2013
  • не могу заставить его работать, потому что документации очень мало. 22.04.2013
  • Я думаю, вы должны подробно объяснить, чего вы пытаетесь достичь. Схема таблиц поможет. 2 таблицы не могут быть в соединенном состоянии. Присоединение — это предложение оператора select, которое просто объединяет записи из двух или более таблиц и возвращает результаты, но стоящие за ним таблицы по-прежнему разделены, поэтому вам придется добавлять записи в обе таблицы. Насколько я понимаю - у вас есть оператор select с соединением по 2 таблицам и получается объединенная запись. Затем вы вставляете запись в одну из таблиц, и поэтому вы не получаете эту запись обратно, потому что в другой нет связанной записи. Я прав? 23.04.2013
  • выложу схему стола. я работаю с 3 таблицами. 1 для категорий 1 для заводов и таблица factorycategories. я разместил это в своем вопросе. 23.04.2013
  • Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..