slipce 0 Denunciar post Postado Outubro 23, 2007 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
najalves 0 Denunciar post Postado Outubro 23, 2007 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 linhaestou 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
slipce 0 Denunciar post Postado Outubro 23, 2007 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
najalves 0 Denunciar post Postado Outubro 24, 2007 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
slipce 0 Denunciar post Postado Outubro 24, 2007 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
najalves 0 Denunciar post Postado Outubro 24, 2007 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
slipce 0 Denunciar post Postado Outubro 24, 2007 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
najalves 0 Denunciar post Postado Outubro 24, 2007 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
slipce 0 Denunciar post Postado Outubro 24, 2007 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
najalves 0 Denunciar post Postado Outubro 25, 2007 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
slipce 0 Denunciar post Postado Outubro 26, 2007 Não entendi direito os seus dois problemas: gravar do último para o primeiro e, que está gravando lixo. Compartilhar este post Link para o post Compartilhar em outros sites