Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guilherme Luiz

Contar novos registros apos INSERT MySQL

Recommended Posts

Olá pessoal,

Tenho o seguinte INSERT

$query_add = "INSERT INTO contato (chave_especial_user, nome, sobrenome, sexo, aniversario, telefone, celular, preferencial, email, face_url, twitter_url, insta_url, dado, grupo_id) SELECT '$chave_especial', '$nome', '$sobrenome', '$sexo_x', '$niver_junto', '$fone_fixo', '$celular', '$preferencial', '$email', '$face_url', '$twitter_url', '$insta_url', '$dado_perso', '$_POST[grupo_id]' FROM DUAL WHERE NOT EXISTS (SELECT * FROM contato WHERE preferencial='$preferencial')";
$sql_add   = mysqli_query($connect_sql,$query_add);

O que ele faz é adicionar um novo registro de contato - que está sendo importado de uma planilha csv - sem repetir o campo PREFERENCIAL.

A inserção do dado está ok, mas agora estou querendo desenvolver duas coisas

1º Retornar total de registros adicionados

Como meu insert está num loop o _affected_rows não funciona já que ele fica retornando sempre 1 - quando adiciona ou 0 quando não.

Já tentei consultar o ID antes da inserção e depois consultar o último ID criado após a inserção e então fazer uma simples subtração de ultimo_id - novo_id e também não deu certo.

2º Retornar o total de registros não adicionados porque são duplicados

O código está fazendo a inserção sem duplicar, mas como retornar quantos registros foram ignorados porque estão duplicados?

Alguma luz/ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use Operadores de Incremento

se _affected_rows for igual a 1, pós-incrementa

$a++;

Vlw Will... Fiz a sugestão e deu certinho. Tanto quebrar a cabeça e eu não fui no mais básico rs

Segue o final do codigo.

//INSTRUÇÃO MYSQL PARA INSERIR REGISTRO UNICO
$query_add = "INSERT INTO contato (chave_especial_user, nome, sobrenome, sexo, aniversario, telefone, celular, preferencial, email, face_url, twitter_url, insta_url, dado, grupo_id) SELECT '$chave_especial', '$nome', '$sobrenome', '$sexo_x', '$niver_junto', '$fone_fixo', '$celular', '$preferencial', '$email', '$face_url', '$twitter_url', '$insta_url', '$dado_perso', '$_POST[grupo_id]' FROM DUAL WHERE NOT EXISTS (SELECT * FROM contato WHERE preferencial='$preferencial')";
$sql_add   = mysqli_query($connect_sql,$query_add); //executo a query do sql com inclusao unica
$check_add = mysqli_affected_rows($connect_sql); //salvo na variavel as linhas afetadas

if($check_add == TRUE){ $up_ok++; } //SOMO QUANTAS LINHAS DERAM OK
if($check_add == FALSE){ $up_fail++; } //SOMO QUANTAS LINHAS NAO FORAM SALVAS

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.