Fórum foreach faz insert em duplicidade #592789
27/04/2018
0
Olá pessoal, sou iniciante em programação e estou batendo a cabeça a dias com esse código, exibe um relatório em pdf direitinho, mas o insert sai duplicado na tabela em que preciso gravar, já tentei de tudo, alguém pode me dar uma dica?
foreach ($presenca as $c) {
$ID_FUNCIONARIO = ($c->FUNCIONARIO);
$nomeFUNCIONARIO = ($c->NOMEFUNC);
$DTPONTO = ($c->DTPONTO);
$MARCACAO = ($c->MARCACAO);
$HORA = explode(",", $MARCACAO);
$HORADIV = $HORA[0] . "," . $HORA[1] . "," . $HORA[2] . "," . $HORA[3] . "," . $HORA[4] . "," . $HORA[5];
echo '<tr>';
echo '<td>' . $ID_FUNCIONARIO . '</td>';
echo '<td>' . $nomeFUNCIONARIO . '</td>';
echo '<td>' . date('d/m/Y', strtotime($DTPONTO)) . '</td>';
echo '<td>' . $HORA[0] . '</td>';
echo '<td>' . $HORA[1] . '</td>';
echo '<td>' . $HORA[2] . '</td>';
echo '<td>' . $HORA[3] . '</td>';
echo '<td>' . $HORA[4] . '</td>';
echo '<td>' . $HORA[5] . '</td>';
echo '</tr>';
$SQL = mysql_query ("INSERT INTO TABELA (ID_FUNCIONARIO, DTPONTO, MARCACAO) VALUES ('$FUNCIONARIO', '$DTPONTO', '$MARCACAO')")OR DIE(mysql_error());
}Karina Alves
Curtir tópico
+ 0
Responder
Post mais votado
04/05/2018
Você tem que retirar todos os códigos de inset de dentro do foreach.
Algo do tipo, como eu não sei o resto do seu código, posso ajudar somente até aqui :D
Att.
Marlon Breno Gera
$ID_FUNCIONARIO = ($c->FUNCIONARIO);
$nomeFUNCIONARIO = ($c->NOMEFUNC);
$DTPONTO = ($c->DTPONTO);
$MARCACAO = ($c->MARCACAO);
$HORA = explode(",", $MARCACAO);
$HORADIV = $HORA[0] . "," . $HORA[1] . "," . $HORA[2] . "," . $HORA[3] . "," . $HORA[4] . "," . $HORA[5];
$SQL = mysql_query ("INSERT INTO TABELA (ID_FUNCIONARIO, DTPONTO, MARCACAO) VALUES ('$FUNCIONARIO', '$DTPONTO', '$MARCACAO')")OR DIE(mysql_error());
foreach ($presenca as $c) {
echo '<tr>';
echo '<td>' . $ID_FUNCIONARIO . '</td>';
echo '<td>' . $nomeFUNCIONARIO . '</td>';
echo '<td>' . date('d/m/Y', strtotime($DTPONTO)) . '</td>';
echo '<td>' . $HORA[0] . '</td>';
echo '<td>' . $HORA[1] . '</td>';
echo '<td>' . $HORA[2] . '</td>';
echo '<td>' . $HORA[3] . '</td>';
echo '<td>' . $HORA[4] . '</td>';
echo '<td>' . $HORA[5] . '</td>';
echo '</tr>';
}
Algo do tipo, como eu não sei o resto do seu código, posso ajudar somente até aqui :D
Att.
Marlon Breno Gera
Marlon Gera
Responder
Gostei + 2
Mais Posts
14/05/2018
Karina Alves
Não deu certo o insert dentro nem fora do foreach, então encontei uma outra solução.
Antes de imprimir os dados na tela fiz uma trigger no mysql para inserir os dados em outra tabela e deu super certo.
Obrigada pela ajuda!
Antes de imprimir os dados na tela fiz uma trigger no mysql para inserir os dados em outra tabela e deu super certo.
Obrigada pela ajuda!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)