我有一张表格可以从公司添加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来删除数据。
问题
如果没有表中的idaanbiedingen,如何从fotoaanbiedingen
删除数据?
我不明白该怎么做。看起来几乎不可能。我想过在bedrijfaanbiedingen
加入idfotoaanbiedingen,但我不知道怎么做。
我的模型看起来像这样:
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
删除的功能?
答案 0 :(得分:0)
如果您没有ID字段,则可以在可能的情况下使用其他字段删除。
检查它是否适合您:
$this->db->join('fotoaanbiedingen', 'fotoaanbiedingen.idfotoaanbiedingen = Bedrijfaanbiedingen.idfotoaanbiedingen');
答案 1 :(得分: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}
请尝试代码,注意此代码未经过测试。如果需要,您可以将其转换为活动记录,基本上表Bedrijfaanbiedingen
与表fotoaanbiedingen
有共同点idfotoaanbiedingen
,您只需要加入它们。
答案 2 :(得分:0)
首先,我认为它会让你的生活变得更轻松Bedrijfaanbiedingen和fotoaanbiedingen在另一方面有联系(fotoaanbiedingen会有一个外键:idbedrijfaanbiedingen)
对于您的问题,您应该考虑使用where_in()activerecord函数(请参阅doc,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');