Ale3009 Postado Maio 25, 2009 Denunciar Share Postado Maio 25, 2009 Olá Galera.... tenho um banco já pronto c/ as tabelas neste aspecto:INSERT (codigo_chave, codigo_produto, codigo_categoria, codigo_subcategoria, codigo_marca, Nome_produto, descricao_produto, peso, disponivel, sigla_idioma) INTO `Produtos` VALUES('', 1, 1, 0, 0, 'Cataflan', 'Cataflan D.. Usado para infecções', 0, 1, 'pt_BR');e preciso inserir via txt uns 6 mil ítens.. como eu poderia fazer isso???me passaram um arquivo txt com esses dados; mas como seria este script?Desde já obrigada Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Maio 25, 2009 Denunciar Share Postado Maio 25, 2009 veja um exemplo:DROP TABLE IF EXISTS `droplist`; CREATE TABLE `droplist` ( `mobId` INT NOT NULL DEFAULT '0', `itemId` INT NOT NULL DEFAULT '0', `min` INT NOT NULL DEFAULT '0', `max` INT NOT NULL DEFAULT '0', `category` INT NOT NULL DEFAULT '0', `chance` INT NOT NULL DEFAULT '0', PRIMARY KEY (`mobId`,`itemId`,`category`), KEY `key_mobId` (`mobId`) ) DEFAULT CHARSET=utf8; INSERT INTO `droplist` VALUES (18001,1806,1,1,-1,10868), (18001,57,765,1528,0,700000), (18001,4069,1,1,1,2102), (18001,4070,1,1,1,3192), (18001,4071,1,1,1,1615), (18001,1419,1,1,2,200000), (18001,1864,1,1,2,166667), (18001,1866,1,1,2,62500), (18001,1878,1,1,2,37037), (18001,1885,1,1,2,7092), (18001,1889,1,1,2,5435), (18001,4197,1,1,2,8); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ale3009 Postado Maio 25, 2009 Autor Denunciar Share Postado Maio 25, 2009 Não entendi... já tenho a tabela criada e o txt pronto... quero saber como inserir na tabela esse txt entende? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Maio 25, 2009 Denunciar Share Postado Maio 25, 2009 o mais facil é abrir o administrador do seu sql e executar o txt por ele... ai depende do tipo dele...ou para fazer por upload ou executar um arquivo enviado pelo ftp... você vai precisar de alguma coisas...1- FSO para ler o arquivo;2- um split para quebrar cada linha de inserção no txt;3- um loop para executar vada instrução.insert into tabela (campo1,campo2) values ('var1','var2'); insert into tabela (campo1,campo2) values ('var1','var2'); insert into tabela (campo1,campo2) values ('var1','var2'); insert into tabela (campo1,campo2) values ('var1','var2'); ai le o arquivo com FSO e poe numa variavel ou le linha a linha... ai fica como você fez linha a linha ou geral... to usando um exemplo de armazenar todo o txt numa var chamada sql... com o geral use split sql=split(sql,";") ai splita... cada um vira um item de array for i=lbound(sql) to ubound(sql) conn.execute(sql(i)) nextqualquer coisa manda ai... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ale3009 Postado Maio 25, 2009 Autor Denunciar Share Postado Maio 25, 2009 (editado) O problema é que não é SQL server.. é My SQL no php admin.. é on linelá tem uma parte que tem ImportarArquivo para importarLocalização do arquivo textomas ai q formato tem q esar esse arquivo txt? é só importar depois que da certo?Obrigada pelas rapidas respostas Editado Maio 25, 2009 por Ale3009 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ale3009 Postado Maio 26, 2009 Autor Denunciar Share Postado Maio 26, 2009 Tenho isso na minha loja... <%'Cria o objeto para upload de arquivoSet myFileUpload = Server.CreateObject("SoftArtisans.FileUp") myFileUpload.Form("txtAtualizacao").Path = Application("DiretorioAtualizacaoProdutos") Arquivo = Mid(myFileUpload.Form("txtAtualizacao").UserFilename, InstrRev(myFileUpload.Form("txtAtualizacao").UserFilename, "\") + 1) myFileUpload.Form("txtAtualizacao").SaveAs Arquivo 'Destroi o objeto de uploadSet myFileUpload = Nothing'Cria o objeto para abrir arquivo textoSet objFSO = Server.CreateObject("Scripting.FileSystemObject")caminho = Application("DiretorioAtualizacaoProdutos") & Arquivo 'Cria o objeto para ler o arquivo texto Set openTxt = objFSO.OpenTextFile(caminho, 1,0) 'Loop para leitura das linhas do arquivo texto while (not openTxt.AtEndOfStream) and response.isclientconnected() linha_txt = openTxt.readline arrayx = split(linha_txt,"|") If UBound(arrayx) <> 2 Then response.write UBound(arrayx) response.end End if 'Response.write "SELECT codigo_produto_loja, preco_base, preco_unitario, quantidade_produto FROM produtos WHERE codigo_produto_loja = '" & arrayx(0) & "'" 'Query de consulta a tabela Produtos Query_produtos = "SELECT codigo_produto_loja, preco_base, preco_unitario, quantidade_produto FROM Produtos WHERE codigo_produto_loja = '" & arrayx(0) & "'" 'Cria objeto para consultar as podutos Set RS_Produtos = Server.CreateObject("ADODB.Recordset") 'Conexão ADO Set RS_Produtos.ActiveConnection = Conexao RS_Produtos.CursorLocation = 3 RS_Produtos.CursorType = 0 RS_Produtos.LockType = 3 'Executa a query RS_Produtos.Open Query_produtos 'Se o registro existe, atualiza. If not RS_Produtos.Eof then preço = arrayx(1) 'Retira o ponto preco_unitario = replace(preço,".","") ' Retira virgula e repoe por ponto, para evitar problemas no UPDATE, caso banco seja SQL If Application("TipoBanco")="mssql" Then preco_unitario = replace(preco_unitario,",",".") End if quantidade = arrayx(2) If preço <> "" Then 'Response.write "UPDATE Produtos SET preco_base = '" & preco_unitario & "', preco_unitario = '"& preco_unitario &"' WHERE codigo_produto_loja = '" & arrayx(0) & "'" & "<br>" Conexao.Execute "UPDATE Produtos SET preco_base = '" & preco_unitario & "', preco_unitario = '"& preco_unitario &"' WHERE codigo_produto_loja = '" & arrayx(0) & "'" End if If quantidade <> "" Then RS_Produtos("quantidade_produto") = arrayx(2) Conexao.Execute "UPDATE Produtos SET quantidade_produto = " & arrayx(2) & " WHERE codigo_produto_loja = '" & arrayx(0) & "'" End if 'Se o registro não existe acumula na variavel indicativa Else nolocali = nolocali & arrayx(0) &"|"& arrayx(1) &"|"& arrayx(2) & "<br>" End if wend Set RS_Produtos = Nothing openTxt.close 'Destrói os objetos criados set openTxt = nothingset objFSO = nothingCall Fecha_conexao()'Transfere o valor da variavel indicativa para uma session'A session será exibida na página de upload de arquivosession("nolocali") = nolocali'Mensagem de respostamsg_resultado = "Informações atualizadas"'Redirect para página do POSTResponse.redirect "ADM_envia_txtProdutos.asp?msg_resultado="& msg_resultado%>Só que é um update da seguinte forma padrão que é CODIGOPRODUTOLOJA|VALOR|QUANTIDADE (SNY000|3212,40|10)poderiam me ajudar a transformar isso num INSERT com codigo_categoria|Nome_produto|autor|descricao_produto (1|00010367647896015516642AVODART|0,5 MG C/30 CPS|0263SMITH KLINE 001.2ETICOS - NEG UND00000000000000000100001000122.43000162.83000090.750033.0000000000010D10/2008 07/04/200901/02/200830/01/200804) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Maio 26, 2009 Denunciar Share Postado Maio 26, 2009 pelo phpmyadmin um arquivo com o conteudoINSERT INTO `droplist` VALUES (18001,1806,1,1,-1,10868), (18001,57,765,1528,0,700000), (18001,4069,1,1,1,2102), (18001,4070,1,1,1,3192), (18001,4071,1,1,1,1615), (18001,1419,1,1,2,200000), (18001,1864,1,1,2,166667), (18001,1866,1,1,2,62500), (18001,1878,1,1,2,37037), (18001,1885,1,1,2,7092), (18001,1889,1,1,2,5435), (18001,4197,1,1,2,8);é inserido normalmente... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ale3009 Postado Maio 26, 2009 Autor Denunciar Share Postado Maio 26, 2009 droplist é o nome da tabela??? é isso né???... ai o txt todo eu colo assim?(18001,1806,1,1,-1,10868),(18001,57,765,1528,0,700000),(18001,4069,1,1,1,2102),(18001,4070,1,1,1,3192),(18001,4071,1,1,1,1615),(18001,1419,1,1,2,200000),(18001,1864,1,1,2,166667),(18001,1866,1,1,2,62500),(18001,1878,1,1,2,37037),(18001,1885,1,1,2,7092),(18001,1889,1,1,2,5435),(18001,4197,1,1,2,8);Muito obrigada.. você ta me ajudando muitão Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Maio 26, 2009 Denunciar Share Postado Maio 26, 2009 no exemplo peguei um trecho do banco de dados do l2jvocê pode fazer de duas maneiras no txt...INSERT INTO `tabela` VALUES ('campo1','campo2','campo3','campo4','campo5','campo6'), ('campo1','campo2','campo3','campo4','campo5','campo6'), ('campo1','campo2','campo3','campo4','campo5','campo6'); terminando cada linha com , e na ultima com; ou insert into tabela (campo1,campo2) values ('var1','var2'); insert into tabela (campo1,campo2) values ('var1','var2'); insert into tabela (campo1,campo2) values ('var1','var2'); insert into tabela (campo1,campo2) values ('var1','var2'); em cada linha você poe o insert completo. finalizado por; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ale3009
Olá Galera.... tenho um banco já pronto c/ as tabelas neste aspecto:
INSERT (codigo_chave, codigo_produto, codigo_categoria, codigo_subcategoria, codigo_marca, Nome_produto, descricao_produto, peso, disponivel, sigla_idioma) INTO `Produtos` VALUES('', 1, 1, 0, 0, 'Cataflan', 'Cataflan D.. Usado para infecções', 0, 1, 'pt_BR');
e preciso inserir via txt uns 6 mil ítens.. como eu poderia fazer isso???
me passaram um arquivo txt com esses dados; mas como seria este script?
Desde já obrigada
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.