0
Good afternoon everyone, I have a problem in my code and I would like a help to solve it. It works like this: I receive a form of 3 variables (id_event, quality_user and id_user - the latter comes from a select Multiple with name=usuario_id[]).
I did the test with the console and when selecting in the select Multiple in the form, the information in the POST is correct (usuario_id[] = 1 and username_id[] = 2, when selecting two users, for example).
The point is that when I receive this information in the controller and game in the foreach so that each user received is inserted into the database, only 1 of them is added.
Function code in the controller receiving form data:
public function gerarCertificado(){
if(esta_logado()){
$usuario = $this->session->userdata("usuario_logado");
$id_evento = $this->input->post('id_evento');
$evento = $this->EventosModel->buscarEvento($id_evento);
$dadosEvento = array('evento' => $evento);
$qualidade = $this->input->post('qualidade');
$id_usuarios_selecionados = $this->input->post('id_usuario');
foreach ($id_usuarios_selecionados as $id_user) {
$existeCert = $this->UsuariosModel->verificarCertificado($id_user, $id_evento);
// usuario selecionado já possui certificado
if($existeCert){
$this->session->set_flashdata("danger", "Algum dos usuários selecionados já possui certificado para este evento");
redirect('/eventos/certificados/' . $id_evento);
// usuario selecionado não possui certificado no evento escolhido --> inserir na tabela certificados
}else{
if($this->UsuariosModel->gerarCertificado($id_evento, $id_user, $qualidade)){
$this->session->set_flashdata("success", "Certificados gerados!");
}else{
$this->session->set_flashdata("danger", "Erro ao gerar certificados!");
}
redirect('/eventos/certificados/' . $id_evento);
}
}
}else{
redirect('/');
}
}
Function code on the model you insert into the BD:
public function gerarCertificado($id_evento, $id_user, $qualidade){
if($this->db->query("insert into certificados (id_evento, id_usuario, qualidade) values ('".$id_evento."','".$id_user."','".$qualidade."')")){
return TRUE;
}else{
return FALSE;
}
}
In short, when I select more than 1 user in select, the function is only executed 1 with 1 of the selected users.
Thank you!
print_r($id_usuarios_selecionados)
shows what?– ShutUpMagda
because it does not use $this->db->Insert('SUA_TABELA', $SUA_ARRAY)?
– Diêgo Correia de Andrade