1

我有一个用于添加公司的 aanbiedingen(优惠)的表格。我为此使用了三个表:

Aanbiedingen
- - - - - - -
idaanbiedingen //id
Aanbieding //offername
Omschrijving //description
Prijs //price
Conditie //condition

Bedrijfaanbiedingen
- - - - - - - - - - 
idbedrijfaanbiedingen //id
idaanbiedingen // offers id
idbedrijven // company id
idfotoaanbiedingen // photo id

fotoaanbiedingen
- - - - - - - - -
idfotoaanbiedingen //id
fotonaam // photo name (this is the file_name)

我可以从表中删除数据:Aanbiedingen 和 Bedrijfaanbiedingen。我使用 url 中的 id 来删除它们。我在两个表中都使用了 idaanbiedingen 来删除数据。

问题

如何fotoaanbiedingen在该表中没有 idaanbiedingen 的情况下删除数据?我不明白如何做到这一点。这看起来几乎是不可能的。我考虑过加入 idfotoaanbiedingen 的工作,bedrijfaanbiedingen但我不知道该怎么做。

我的模型如下所示:

function deleteaanbieding($id)
{
    $this->db->where('idaanbiedingen', $id);
    $this->db->delete('bedrijfaanbiedingen');
    $this->db->where('idaanbiedingen', $id);
    $this->db->delete('Aanbiedingen');
    redirect('members/aanbiedingen');
}

$id 字段是:$id = $this->uri->segment(3);

如何添加要删除的功能fotoaanbiedingen

4

3 回答 3

0

在标准的 mysql 查询中,它看起来像这样。

delete Aanbiedingen,Bedrijfaanbiedingen,fotoaanbiedingen 
from Bedrijfaanbiedingen
inner join Aanbiedingen ON Aanbiedingen.idaanbiedingen = Bedrijfaanbiedingen.idaanbiedingen
inner join fotoaanbiedingen ON fotoaanbiedingen.idfotoaanbiedingen = Bedrijfaanbiedingen.idfotoaanbiedingen 
where Bedrijfaanbiedingen.idaanbiedingen= {the id}

请尝试代码,注意此代码未经测试。您可以根据需要将其转换为活动记录,基本上 table与 table有Bedrijfaanbiedingen一些共同点,您只需要加入它们即可。fotoaanbiedingenidfotoaanbiedingen

于 2013-06-19T09:02:39.290 回答
0

如果您没有 ID 字段,那么您可以在可能的情况下使用其他字段进行删除。

检查它是否适合您:

$this->db->join('fotoaanbiedingen', 'fotoaanbiedingen.idfotoaanbiedingen = Bedrijfaanbiedingen.idfotoaanbiedingen');
于 2013-06-19T08:04:34.550 回答
0

首先,我认为这会让你的生活更轻松 Bedrijfaanbiedingen 和 fotoaanbiedingen 在另一边相连(fotoaanbiedingen 会有一个外键:idbedrijfaanbiedingen)

对于您的问题,您应该考虑使用 where_in() activerecord 函数(请参阅文档,activerecord 部分)。你必须有一组 idfotoaanbiedingen。

例如,如果您有一个 idbedrijfaanbiedingen,您应该尝试类似的方法(以下代码位于您方法的开头):

$this->db->select('idfotoaanbiedingen');
$this->db->from('Bedrijfaanbiedingen');
$this->db->where('idbedrijfaanbiedingen',$yourId);
$query = $this->db->get(); //getting the photo id out of the Bedrijfaanbiedingen table

//not sure about the result array, you should treat it better before entering it in argument of this method
$this->db->where_in('idfotoaanbiedingen',$query->result_array());  
$this->db->delete('fotoaanbiedingen');
于 2013-06-19T09:11:38.377 回答