我的数据库中有3个不同的表:provider,families和relationproviderfamily。每个提供者都可以拥有许多家庭。
在添加新提供程序的表单中,我有一个多选项,您可以在其中添加属于该提供程序的系列。我使用带有添加按钮的选择下拉列表将项目添加到选择倍数。 /视图/ proveedor /添加/
<label for="nombresFamilia" class="col-md-4 control-label"></label>
<div class="col-md-6">
<select multiple id="nombresFamilia" name="nombresFamilia[]" class="form-control">
<option value="CABLES">CABLES</option>
<option value="PCR">PCR</option>
<option value="POSTES">POSTES</option>
</select>
</div>
我需要获取当前提供者和所有选定族的ID,并将这些值插入表关系提供者家庭中,这只有列。因此,提供者和属于它的每个家庭应该有一行。
`idProveedor` int(11) NOT NULL,
`idFamilia` int(11) NOT NULL
这是我在我的模型中使用的功能&#34; Proveedormodel&#34;插入数据库
function add_uk_proveedor_familia($id, $params){
foreach($param as $clave){
$clave = $this->db->query("SELECT id FROM familia WHERE clave = '$param'");
$this->db->query("INSERT INTO 'relacionproveedorfamilia' ('idProveedor', 'idFamilia') VALUES ('$id', '$clave')");
}
}
这就是我从控制器调用该功能的地方&#34; Proveedor&#34;
$idProveedor = $this->Proveedormodel->get_proveedor($id);
$params_familia = array(
'nombresFamilia' => $this->input->post('nombresFamilia')
);
$relacion_proveedor = $this->Proveedormodel->add_uk_proveedor_familia($idProveedor, $params_familia);
我刚刚开始使用codeigniter,而且我已经从这个网站的其他问题中获得了很多帮助,但我还没有能够解决这个问题。非常感谢任何帮助。
您可以查看项目的存储库here
答案 0 :(得分:1)
试试这些代码。
形式:
<label for="nombresFamilia" class="col-md-4 control-label"></label>
<div class="col-md-6">
<select multiple="multiple" id="nombresFamilia" name="nombresFamilia[]" class="form-control">
<option value="CABLES">CABLES</option>
<option value="PCR">PCR</option>
<option value="POSTES">POSTES</option>
</select>
</div>
Controller&#34; Proveedor&#34;:
$idProveedor = $this->Proveedormodel->get_proveedor($id);
$params_familia = array(
'nombresFamilia' => implode(",", $this->input->post('nombresFamilia'))
);
$relacion_proveedor = $this->Proveedormodel->add_uk_proveedor_familia($idProveedor, $params_familia);
在您的模型&#34; Proveedormodel&#34;中,只需插入数据。
答案 1 :(得分:0)
您的nombresFamilia
本身返回数组,因此从控制器中移除附加数组
控制器文件
$idProveedor = $this->Proveedormodel->get_proveedor($id);
$params_familia = $this->input->post('nombresFamilia');
$relacion_proveedor = $this->Proveedormodel->add_uk_proveedor_familia($idProveedor, $params_familia);