c0de 0 Denunciar post Postado Abril 13, 2005 Tenho um arquivo txt que está separado por virgula desse modo:item;%;pm;a1;a2;a3;a4;a51.1;65;3;15;15;10;10;151.2;55;4;15;10;10;10;101.3;50;3;15;10;10;5;102.1;65;3;15;15;10;10;152.2;60;3;15;5;10;15;152.3;75;3;20;10;20;10;153.1;80;3;20;15;20;10;153.2;65;3;10;20;10;10;154.1;90;3;15;20;20;15;204.2;85;3;15;20;15;15;205.1;80;2;15;20;15;15;155.2;45;2;10;10;10;10;55.3;50;2;10;10;10;10;106.1;70;3;20;15;10;10;156.2;45;3;10;10;10;5;106.3;65;3;15;15;15;10;107.1;75;3;15;15;20;15;107.2;70;2;15;15;15;10;157.3;65;2;15;15;10;10;157.4;70;2;15;15;10;20;108.1;60;10;60;;;;8.2;60;10;60;;;;8.3;80;6;80;;;;8.4;20;3;20;;;;8.5;40;8;40;;;;8.6;80;3;80;;;;8.7;20;5;20;;;;Estou precisando inserir esses dados em um bd, até aí tudo bem. O problema é, os dados da primeira coluna devem ser inseridos de acordo com o primeiro numero, e os cinco ultimos numeros de acordo com o segundo número da primeira coluna... a estrutura ficaria assim:item % pm aspectos 1.1 65 3 15 15 10 10 15não sei se deu pra entender direito... mas doi o melhor que eu pude fazer por enquanto.O que eu pensei como solução:abrir o arquivo com file() retornando uma array com as linhas, mas como eu a partir dessa array, posso gerar uma array bidimensional contendo as linhas (vinda do file()) e as colunas (fazendo um explode() por exemplo)? e como, após gerar essa array bidimensional, fazer a busca para ir inserindo gradativamente no bd?Agradeço desde já.Diego. Compartilhar este post Link para o post Compartilhar em outros sites
c0de 0 Denunciar post Postado Abril 14, 2005 Alguém pode me ajudar???estou realmente precisando disto... Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Abril 14, 2005 explica melhor o que você quer fazer eu nao entendi essa parte final que você falou do primeiro numero e do ultimo Compartilhar este post Link para o post Compartilhar em outros sites
c0de 0 Denunciar post Postado Abril 14, 2005 Inicialmente eu preciso ler o arquivo txt todo eu fiz assim: if (file_exists($nome)) { $linhas = file($nome); $i=sizeof($linhas); while ($i!=$linhas){ $dado[$i]=explode(";",$linhas[$i]); i++; }}depois inserir os dados de acordo com a estrutura abaixo: item....%...pm...aspectos 1.1......65...3......15 .........................15 .........................10 .........................10 .........................15 1.2......75...4......20 .........................10 .........................15 .........................20 .........................10 nesse caso eu fiz deste modo: $i=0; $j=0;while ($i<=$linhas[$i][$j]) { $i++; while ($j<=$linhas[$i][$j]) { se ($j=0) { switch (substr($linhas[$i][$j],0,1)) { case 1: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=1"; break; case 2: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=2"; break; case 3: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=3"; break; case 4: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=4"; break; case 5: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=5"; break; case 6: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=6"; break; case 7: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=7"; break; case 8: $query="INSERT INTO criterio (item) VALUES ($linhas[$i][$j]) WHERE criterio=8"; break; } mysql_query($query) or die("Erro ao inserir os dados: ".mysql_error()); } else { if ($j>2) { switch (substr($linhas[$i][0],(strlen($linhas[$i][$j])-1),1)) { case 1: $query="INSERT INTO criterio (aspecto) VALUES ($linhas[$i][$j]) WHERE item=1"; break; case 2: $query="INSERT INTO criterio (aspecto) VALUES ($linhas[$i][$j]) WHERE item=2"; break; case 3: $query="INSERT INTO criterio (aspecto) VALUES ($linhas[$i][$j]) WHERE item=3"; break; case 4: $query="INSERT INTO criterio (aspecto) VALUES ($linhas[$i][$j]) WHERE item=4"; break; case 5: $query="INSERT INTO criterio (aspecto) VALUES ($linhas[$i][$j]) WHERE item=5"; break; } mysql_query($query) or die("Erro ao inserir os dados: ".mysql_error()); } } $j++; }}Inicialmente seria isso. Se puderes me ajudar com este problema acima agradeço muito. Mas surgiu um outro problema, eu preciso inserir numa outra tabela relacionada com a anterior os dados de % pm de acordo com o item. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Abril 14, 2005 Olhando simplesmente o codigo nao da pra te ajudar legal eu gostaria de entender o que você quer fazer ,mas mostrando a finalidade, por que ali eu vi você fazer 2 loops e usar um monte de case e acho que da pra economizar bastante o seu codigo e montar algo mais simples e direto mas pra isso gostaria de entender melhor se for possivel Compartilhar este post Link para o post Compartilhar em outros sites
c0de 0 Denunciar post Postado Abril 15, 2005 O que eu preciso fazer é:abri um arquivo txt, gerado a partir de uma planilha o excel, que será "uploadeado" pelo usuário;ler todas as linhas e campos divididos por ";" que tem no arquivo txt, e guardar em uma array bidimensional;após feito isso eu preciso inserir num banco de dados o conteúdo do arquivo; segue abaixo o conteúdo de um arquivo:item;%;pm;a1;a2;a3;a4;a51.1;65;3;15;15;10;10;151.2;55;4;15;10;10;10;101.3;50;3;15;10;10;5;102.1;65;3;15;15;10;10;152.2;60;3;15;5;10;15;152.3;75;3;20;10;20;10;153.1;80;3;20;15;20;10;153.2;65;3;10;20;10;10;154.1;90;3;15;20;20;15;204.2;85;3;15;20;15;15;205.1;80;2;15;20;15;15;155.2;45;2;10;10;10;10;55.3;50;2;10;10;10;10;106.1;70;3;20;15;10;10;156.2;45;3;10;10;10;5;106.3;65;3;15;15;15;10;107.1;75;3;15;15;20;15;107.2;70;2;15;15;15;10;157.3;65;2;15;15;10;10;157.4;70;2;15;15;10;20;108.1;60;10;60;;;;8.2;60;10;60;;;;8.3;80;6;80;;;;8.4;20;3;20;;;;8.5;40;8;40;;;;8.6;80;3;80;;;;8.7;20;5;20;;;;Na hora de inserir, no caso do primeiro campo da linha(item), ele deve verificar o número do item(1.1, item 1 ou 2.1, item 2), e inserir de acordo com o item. Em seguinda para inserir os campos a1,a2,a3,a4 e a5 deve-se verificar o número do subitem(1.1, subitem 1 ou 1.2, subitem 2), e inserir de acordo com o subitem.Inicialmente é isso, não sei se agora ficou mais claro o que eu tenho como dúvida, mas espero ter esclarecido melhor.Obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites