Ir para conteúdo

POWERED BY:

Arquivado

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

najalves

script em php que grava dados em um banco mysql

Recommended Posts

Faz assim então no lugar de chamar a função mysqlexecuta, comente ela// $res = mysqlexecuta($conexao,$sql);e coloque no lugar mysql_query($sql) or die( 'Erro:'.mysql_error() );Execute e veja que erro vai dar.E também vejaVeja como você está enviando os dados para o loop:Veja, se na última linha os dados estiverem com um ;(Ponto e virgula) o loop vai ser executado mais uma vez.Exemplo:TEXTAREA----------------------------------- a1,a2,a3,a4; b1,b2,b3,b4; c1,c2,c3,c4;-----------------------------------Caso contrário ele executará o loop corretamente.Exemplo:TEXTAREA----------------------------------- a1,a2,a3,a4; b1,b2,b3,b4; c1,c2,c3,c4-----------------------------------Como você está enviando? Com ou sem o ;(ponto e vírgula ) no final da última linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim então no lugar de chamar a função mysqlexecuta, comente ela// $res = mysqlexecuta($conexao,$sql);e coloque no lugar mysql_query($sql) or die( 'Erro:'.mysql_error() );Execute e veja que erro vai dar.E também vejaVeja como você está enviando os dados para o loop:Veja, se na última linha os dados estiverem com um ;(Ponto e virgula) o loop vai ser executado mais uma vez.Exemplo:TEXTAREA----------------------------------- a1,a2,a3,a4; b1,b2,b3,b4; c1,c2,c3,c4;-----------------------------------Caso contrário ele executará o loop corretamente.Exemplo:TEXTAREA----------------------------------- a1,a2,a3,a4; b1,b2,b3,b4; c1,c2,c3,c4-----------------------------------Como você está enviando? Com ou sem o ;(ponto e vírgula ) no final da última linha

estou enviando com ponto e virgula pq o ; e do script :)estou fazendo o resto do teste...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão é você está enviando os dados com um ponto e virgula no final da string INTEIRA, lá na ÚLTIMA linha ou não? É só você ver os exemplos que eu coloque, repare que no segundo eu não coloquei o ponto e virgula no final da última linha, é isso que eu quero saber como você está fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão é você está enviando os dados com um ponto e virgula no final da string INTEIRA, lá na ÚLTIMA linha ou não? É só você ver os exemplos que eu coloque, repare que no segundo eu não coloquei o ponto e virgula no final da última linha, é isso que eu quero saber como você está fazendo.

Com ponto e vírgula meu jovemSó que esse ponto e virgula e do javascript, ele q adicionanao e o usuario q digita e sim o scriptto procurando um jeito de arrumar!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca um menos um no seu for, assim:for ($i=0;$i<sizeof($separa) - 1; $i++) E veja se agora ele está rodando aquele insert com os campos vazios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca um menos um no seu for, assim:for ($i=0;$i<sizeof($separa) - 1; $i++) E veja se agora ele está rodando aquele insert com os campos vazios.

Bom, aquele insert com os campos vazios sumiu. :)Mas fazendo o teste:
Faz assim então no lugar de chamar a função mysqlexecuta, comente ela// $res = mysqlexecuta($conexao,$sql);e coloque no lugarmysql_query($sql) or die( 'Erro:'.mysql_error() );Execute e veja que erro vai dar.
ele dá esse erro:Nome 0xc,xc,xc,xcNome 1 sd,sd,sd,sdErro:Duplicate entry '191' for key 1Alguma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom um dos problemas já se foi então.Esse erro está acontecendo porque você está inserindo valores repetidos na primary key da sua tabela, por isso é que ele grava só o primeiro, você não pode inserir dois valores repitidos em uma primary key ou em um campo unique.Qual campo é a primary key da sua tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom um dos problemas já se foi então.Esse erro está acontecendo porque você está inserindo valores repetidos na primary key da sua tabela, por isso é que ele grava só o primeiro, você não pode inserir dois valores repitidos em uma primary key ou em um campo unique.Qual campo é a primary key da sua tabela?

Claro!!!E mais claro q isso impossível!!Essa tabela de responsáveis tem como chave primária o código da solicitação. O detalhe disso tudo é que essa chave primária ele pega da tabela de solicitante e todos os registros de responsavel (aqueles q eu pego da textarea) são gravados com o mesmo código, por isso repete. Acho q o problema apareceu depois q a minha companheira aki fez essa parte do código (está em negrito):
$separa	= explode(";", $_POST["conteudo"]);for ($i=0;$i<sizeof($separa)-1;$i++) {   $divide = explode(",", $separa[$i]);    echo "Nome $i".$separa[$i];	$sql="INSERT INTO tec_responsavel (rps_co_solicitacao,rps_no_responsavel,rps_no_email,rps_no_orgao,rps_nu_telefone VALUES [b]((select max(tec_solicitante.sol_co_solicitacao)[/b] from tec_solicitante),'$divide[0]','$divide[1]','$divide[2]','$divide[3]')";   //$res = mysqlexecuta($conexao,$sql);   mysql_query($sql) or die( 'Erro:'.mysql_error() );    }
repare q ele pega o valor máximo do codigo de solicitação da tabela de solicitantes e grava todos os registros com o mesmo número de código.Esse código funcionaria perfeitamente bem se não fosse o detalhe de repetir a chave primária pois a intenção nao era gerar um código pra cada um e sim apenas um código, pois existe so uma solicitação.Agora q ja descobrimos, como faço pra ele gravar tudo com o mesmo código de solicitação ,q ele vai pegar da tabela de solicitantes,sem dar esse erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já imaginava que a duplicação estava acontecendo por causa desse campo com o select max, aí já é uma questão de modelagem, não sei como está o sistema ( parte de modelagem ).O erro está na modelagem ou nas restrições.Uma das soluções é eliminar essa chave primaria( desse campo) e criar outra( caso seja preciso ) , ou remodelar a base,pois do jeito que está não existe uma solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já imaginava que a duplicação estava acontecendo por causa desse campo com o select max, aí já é uma questão de modelagem, não sei como está o sistema ( parte de modelagem ).O erro está na modelagem ou nas restrições.Uma das soluções é eliminar essa chave primaria( desse campo) e criar outra( caso seja preciso ) , ou remodelar a base,pois do jeito que está não existe uma solução.

Eu consegui gravar todas as informações usando o codigo do solicitante. :)Agora o problema é outro. Ele grava tudo normalzinho mas os registros ficam gravados em ordem inversa(do último para o primeiro) e ele insere um lixo na frente do registro so a primeira linha que nesse caso é a última nao fica com o lixo.Já removi um monte de espaços do script mas nao resolve... Pode me ajudar mais uma vez?

Já imaginava que a duplicação estava acontecendo por causa desse campo com o select max, aí já é uma questão de modelagem, não sei como está o sistema ( parte de modelagem ).O erro está na modelagem ou nas restrições.Uma das soluções é eliminar essa chave primaria( desse campo) e criar outra( caso seja preciso ) , ou remodelar a base,pois do jeito que está não existe uma solução.

Eu consegui gravar todas as informações usando o codigo do solicitante. :)Agora o problema é outro. Ele grava tudo normalzinho mas os registros ficam gravados em ordem inversa(do último para o primeiro) e ele insere um lixo na frente do registro so a primeira linha que nesse caso é a última nao fica com o lixo.Já removi um monte de espaços do script mas nao resolve... Pode me ajudar mais uma vez?

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.