如何使用连接表向数据库添加记录 - codeigniter

Posted

技术标签:

【中文标题】如何使用连接表向数据库添加记录 - codeigniter【英文标题】:How to add records to database using a joined table - codeigniter 【发布时间】:2013-04-12 14:16:48 【问题描述】:

我制作了一个表格,用于将工厂添加到我的数据库中。这很好用,但我无法在页面上显示我的工厂,因为它们位于连接表中,但是当我提交页面时,它不会向连接表添加 id,因此工厂不会显示在页面上.

连接的表如下所示:

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

idbedrijven 是我的工厂表的 id。

我添加工厂的控制器功能:

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

【问题讨论】:

可以添加插入查询吗? 我已经发布了我的插入查询。这是模型函数。 【参考方案1】:

如果我理解正确 - 您想通过 JOIN 将记录添加到两个不同的表中。这不可能。您将为这两个表编写两个单独的插入语句。

查看 Active Record 的文档 http://ellislab.com/codeigniter/user-guide/database/helpers.html 并阅读有关 $this->db->insert_id(); 的信息,这可能会为您提供有关如何编写插入语句的线索。

【讨论】:

因为文档太小所以无法使用。 我认为,您应该详细解释您要达到的目标。表格的方案会有所帮助。 2 个表不能处于连接状态。 join 是 select 语句的子句,它只是组合来自两个或多个表的记录并返回结果,但后面的表仍然是分开的,因此您必须将记录添加到两个表中。据我了解 - 您有一个 select 语句,在 2 个表上加入并获得合并记录。然后您在其中一个表中插入一条记录,这就是为什么您没有取回该记录的原因,因为另一个表中没有相关条目。我说的对吗? 我将发布表格方案。我使用 3 张桌子。 1 代表工厂的类别 1 和工厂类别表。我在我的问题中发布了它。

以上是关于如何使用连接表向数据库添加记录 - codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

pymsql实现增删改查(python)

使用 SQL Server 从带有 dblink 的 SQL Server 表向 Oracle DB 表插入数据

4.04 从一个表向另外的表中复制行

delphi中如何实现对sql数据库记录进行添加,删除,修改

sql语句里如何实现给查询记录添加自然序号?

vb中如何实现对access数据库的数据添加、修改、删除