Jump to content


Photo

Problemas Ao Inserir Vários Registros Com Php E Mysql


  • Faça o login para participar
4 replies to this topic

#1 maluco456

maluco456

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Masculino
  • Localidade:criciuma

Posted 26/10/2011, 13:18

Boa tarde sou novo no forúm, esse é meu primeiro post,
tenho um problema que não to conseguindo resolver de maneira alguma,
meu problema é o seguinte, tenho uma lista de clientes com dados
IDCLIENTE,
IDENTIFICACAO,
SENHA,
FANTASIA,
RAZAO,
BAIRRO,
CIDADE,
ENDERECO,
CEP,
UF,
COMPLEMENTO,
EMAIL,
VERSAO,
FONE

vem num documento de txt criando pelo nosso software, cada linha é um cliente e cada campo separado por um pipe "|"
então abro esse arquivo com o fopen(), trato com feof(), até aqui ta ok
mostro o conteudo formatado no meu php pra ver se funcionou e ok, porem quando vou inserir esses dados na tabela é que vem a bronca, ele insere o primeiro dado IDCLIENTE, e todos os dados restantes, mas no proximoregistro ele zera os valores de IDCLIENTE e salva somente zero, mas o restante ta ok

o codigo é o seguinte

<?php 
    if (isset($_POST['bt_enviar'])){
        $arquivo = $_FILES['arquivo'];
        $conteudo = $_FILES['arquivo']['name'];
        $file = $_FILES['arquivo']['tmp_name'];
        move_uploaded_file($file,$conteudo);
        //teste de abertura do arquivo
        $manipula = fopen($conteudo, "r");
        if ($manipula == false){
            echo "não foi possível carregar o arquivo";
            }
        //teste de manipulação do arquivo txt
        $fileOpen = '';
        while (!feof($manipula)){
            $fileOpen  .= fgetc($manipula);
        }
        //testando função explode para pegar o pipe como referencia de novo conteudo
        $array = explode("|", $fileOpen);
		$tamanhoArray = (count($array))/14-1;
		$sql =  "INSERT INTO testando (IDCLIENTE, IDENTIFICACAO, SENHA, FANTASIA, RAZAO, BAIRRO, CIDADE, ENDERECO, CEP, UF, COMPLEMENTO, EMAIL, VERSAO, FONE) VALUES"; 
        for ($i = 0; $i<$tamanhoArray; $i++){

            $idCliente 		= $array[$i*14];
            $identificacao	= $array[$i*14+1];
            $senha			= $array[$i*14+2];
            $fantasia		= $array[$i*14+3];
            $razao			= $array[$i*14+4];
            $bairro			= $array[$i*14+5];
            $cidade			= $array[$i*14+6];
            $endereco		= $array[$i*14+7];
            $cep			= $array[$i*14+8];
            $uf				= $array[$i*14+9];
            $complemento	= $array[$i*14+10];
            $email			= $array[$i*14+11];
            $versao			= $array[$i*14+12];
            $fone			= $array[$i*14+13];
#			mostrando informações armazenadas nos arrays
            echo '<div style="padding:10px; margin: 0 0 20px 0; border:1px solid #666;  ">';
   	        echo  "Id = " . $idCliente ."<br />". $identificacao ."<br />". $senha ."<br />". $fantasia ."<br />". $razao ."<br />". $bairro ."<br />". $cidade ."<br />". $endereco ."<br />". $cep ."<br />". $uf ."<br />". $complemento ."<br />". $email ."<br />". $versao . "<br />". $fone ."<br /><br />";
       	    echo '</div>';			
			
			//criando a query para inserção na tabela
			$sql .= " ('".$idCliente."' , '".$identificacao ."' , '". $senha ."' , '". $fantasia ."' , '". $razao ."' , '". $bairro ."' , '". $cidade ."' , '". $endereco ."' , '". $cep ."' , '". $uf ."' , '". $complemento ."' , '". $email ."' , '". $versao ."' , '". $fone ."'),";
        } 
//			retirando a virgula do ultimo sql
			$sql = substr($sql, 0, -1);
//			executando a query			
			mysql_query($sql) or die ("Nao foi possivel inserir<br / > descrição do erro - " . mysql_error());
//			mostrando as linhas afetadas			
			$cadastrados = mysql_affected_rows();
			echo 'Numero de cadastros: ' . $cadastrados;
        //fim do teste de manipulação		
        }else{
        ?>
        <form enctype="multipart/form-data" method="post">
        <input type="file" name="arquivo" /><br />
        <input name="bt_enviar" type="submit" value="enviar" />
        </form>
        </body>
        </html>
        <?php
            }
        ?>

se alguem puder me dar uma luz eu ficaria extremamente grato

Edição feita por: maluco456, 26/10/2011, 13:21.


#2 Diego Bezerra

Diego Bezerra

    Diego Bezerra

  • Moderadores
  • 938 posts
  • Sexo:Masculino
  • Localidade:Amazonas
  • Interesses:Iniciando no C# com MSSQL.

Posted 26/10/2011, 13:27

ei o idcliente ta como primary key e ta como altoincrement
Att.
Diego Bezerra
Agência Kernel - em Breve
Email/msn: diegobezerra@outlook.com
Facebook

#3 maluco456

maluco456

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Masculino
  • Localidade:criciuma

Posted 26/10/2011, 14:28

ei o idcliente ta como primary key e ta como altoincrement


ele ta como primary key, mas nao ta como altoincrement porque os dados sao os mesmos que vao vir do sistema,
ai o problema do primary key é que no primeiro ele insere corretamente, e no segundo ele zera esse valor, e em seguida da erro pq tenta adicionar outro dado como idcliente zero

cara muito obrigado, mas ja consegui resolver, o txt tava vindo com enter em cada linha e na hora que eu ia ler o arquivo ele criava um espaço, e quando dava o insert na tabela, o espaço ia como zero... mas agora ta ok


valeu mesmo

#4 Diego Bezerra

Diego Bezerra

    Diego Bezerra

  • Moderadores
  • 938 posts
  • Sexo:Masculino
  • Localidade:Amazonas
  • Interesses:Iniciando no C# com MSSQL.

Posted 26/10/2011, 15:11

ééé acho que naum ajudei muito mais bem vindo ao forum....
Att.
Diego Bezerra
Agência Kernel - em Breve
Email/msn: diegobezerra@outlook.com
Facebook

#5 Leocarpo

Leocarpo

    12 Horas

  • Usuários
  • 160 posts
  • Sexo:Masculino
  • Localidade:Angola - Luanda
  • Interesses:Programação,
    Padrões web.
    Negócios.

Posted 27/10/2011, 11:19

Viva colega

Dá pra você colar aqui a solução ?
Assim ajuda os que tiverem problemas semelhante.

Agradeceria
O mundo é feito de teórias, as com maior
impacto é que são válidas,e aplicadas nas nossas vidas.
9033 lab




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq