foreach faz insert em duplicidade

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

Karina Alves

Responder

Post mais votado

04/05/2018

Você tem que retirar todos os códigos de inset de dentro do foreach.

$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

Marlon Gera
Responder

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!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar