Good afternoon everyone, I have a problem with my code and would like some help in solving it. It works like this: I get a form 3 variables (event_id, user_quality and user_id - the latter comes from a multiple select with the name = user_id []).
I tested the console and when selecting in the multiple select in the form, the information in the POST comes correct (user_id [] = 1 and userid [] = 2, when I select two users, for example).
The issue is that when I get this information in the controller and game in foreach so that each incoming user is inserted into the database, only 1 of them is added.
Function code in the controller that receives the 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 in the model that inserts into the DB:
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 the select, the function only runs 1 with 1 of the selected users.
Thank you!