Ir para conteúdo

POWERED BY:

Arquivado

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

lendadomato

[Resolvido] Inserir dados no banco MySQL

Recommended Posts

Galera, Salve salve,

 

tenho um form para gravar no banco de dados q tem 2 imagens, preciso gravar

as 2 imagens e os outros dados do produto, o q está acontecendo é q grava em

duplicidade o id do produto e tudo relacionado à ele, vejam onde estou errando:

 

 


Case "gravanovo"


On Error Resume Next

Dim objUpload

Set objUpload = server.CreateObject("Dundas.Upload.2")

objUpload.UseVirtualDir = True

objUpload.UseUniqueNames = False

objUpload.Save "/produtos/imagens"

For Each objUploadedFile in objUpload.Files


filepathname = objUpload.Item("file").Item("FileName")
FileName = objUpload.GetFileName(objUploadedFile.OriginalPath)

filepathname2 = objUpload.Item("file2").Item("FileName")
filename2 = objUpload.GetFileName(objUploadedFile.OriginalPath)


                        nome = objUpload.Form("nomeprod")
                        vendidosprod = objUpload.Form("vendidosprod")
			categ = objUpload.Form("categ")
			peso = objUpload.Form("peso")
			precov = objUpload.Form("precv")
			precon = objUpload.Form("precn")
			parcelamento = objUpload.Form("parc")
			juros = objUpload.Form("juro")
			juropor = objUpload.Form("jurodia")
			fabricante = objUpload.Form("fabri")
			modelo = objUpload.Form("modelo")
			acabamento = objUpload.Form("acabamento")
			condicao = objUpload.Form("condicao")
			descricao = objUpload.Form("descri")
			estoq = objUpload.Form("estoq")
			figurg = objUpload.Form("file")
			figurp = objUpload.Form("file2")
			destaque = objUpload.Form("destaque")
                        QtdMax = objUpload.Form("maxProd")
			Estoque = objUpload.Form("maxEstoque")
                        

			

                        '*** Substitui o ' por ´ (senao ocorre problemas) 
			descricao=replace(descricao,"'","´")
			fabricante=replace(fabricante,"'","´")
			nome=replace(nome,"'","´")


			textosql = "INSERT INTO produtos (nome, fabricante, detalhe, preco, precovelho, parcela" _
			& ", juro, aomes, estoque, idsessao, data, peso, imgra, impeq, status, destaque, modelo,  acabamento, condicao, vendidosprod) VALUES ('" & nome & "', " _
			& "'" & fabricante & "', '" & descricao & "', '" & precon & "', '" & precov & "', '" & parcelamento & "'" _
			& ", '" & juros & "', '" & juropor & "', '" & estoq & "', '" & categ & "', '" & dia & "/" & mez & "/" & Year(Date) & "'," _
                        & " '" & peso & "', '" & FileName & "', '" & filename2 & "', 'nao', '" & destaque & "', '" & modelo & "', '" & acabamento & "', '" & condicao & "', '" & vendidosprod & "')"


já tentei vários caminhos relacionados às imagens, eu acho q é por aí o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro: seu problema nao é de BD, mas sim de lógica de programação, ou seja, local errado da postagem..

 

Segundo... basta uma olhada rápida para você perceber oq fez de errado.... você colocou a instrução de insert DENTRO do FOR... ou seja.. ele vai repetir tudo que estiver dentro dele... e como você colocou o INSERT la.. jah sabe neh..

 

Remova a instrução de INSERT de dentro do loop for...

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma amigo Darkdemo,

 

Primeiro:

a postagem no lugar errado fica a critério dos moderadores, se movem ou não!

 

Segundo:

tenho uma questão relacionada ao banco de dados MySQL por isso postei nesse lugar, tenho o mesmo sistema

que grava os dados em Access e funciona perfeitamente, mas como mudei meu banco para MySQL e ele

já não funciona como deveria, nesse caso não entendo de programação em bancos MySQL e estou

aqui para aprender, niguém nasce sabendo.

 

Terceiro:

Obrigado pela a instrução construtiva, ou seja, pela colada e ofensa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro...

 

Se minhas palavras lhe pareceram "ofensivas", peço-lhe desculpas.. em momento algum foi essa minha intenção...

 

Apenas quis sanar as suas dúvidas pontualmente...

 

Falei do local indevido da postagem, pois fui moderador por muito tempo deste fórum, e sei onde cada dúvida deve ficar..

 

Quando lhe falei sobre o local da postagem quis apenas instruí-lo pois, postando no local correto, a sua resposta chegará muito mais rápido...

 

Como você mesmo colocou, minhas "ofensas" foram críticas e orientaçãoes constutivas, que penso eu, o levaram a sanar seu problema rapidamente... e quem me "conhece" aqui do fórum sabe que sou direto.. e muitas vezes dou mesmo uma "chacoalhada" na pessoa para faze-la "acordar" e perceber seus próprios erros.... pois como sempre digo.. ensino a pescar, não dou o peixe....

 

Se solucionou seu problema, parebéns.. caso contrário, poste sua dúvida aqui novamente.. que muitas outras pessoas menos "ofensivas" terão o prazer de lhe responder...

 

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem comentários sobre suas atitudes Sr.Darkdemo,

 

srs, vejo q várias pessoas chegam à este post vindos de

mecanismos de busca, por isso posto aqui como resolvi a

questão em discursão, não ensino a pescar, dou o peixe a

quem tem fome:

 

 


On Error Resume Next

Dim objUpload
Set objUpload = server.CreateObject("Dundas.Upload.2")
objUpload.UseVirtualDir = True
objUpload.UseUniqueNames = False
objUpload.Save "/imagens"

filepathname1 = Trim(objUpload.GetFileName(objUpload.Files(0).Path))
filepathname2 = Trim(objUpload.GetFileName(objUpload.Files(1).Path))

image1 = filepathname1
image2 = filepathname2

nome = objUpload.Form("nomeprod")
vendidosprod = objUpload.Form("vendidosprod")
categ = objUpload.Form("categ")
peso = objUpload.Form("peso")
precov = objUpload.Form("precv")
precon = objUpload.Form("precn")
parcelamento = objUpload.Form("parc")
juros = objUpload.Form("juro")
juropor = objUpload.Form("jurodia")
fabricante = objUpload.Form("fabri")
modelo = objUpload.Form("modelo")
acabamento = objUpload.Form("acabamento")
condicao = objUpload.Form("condicao")
descricao = objUpload.Form("descri")
estoq = objUpload.Form("estoq")
destaque = objUpload.Form("destaque")
QtdMax = objUpload.Form("maxProd")
Estoque = objUpload.Form("maxEstoque")

'*** Substitui o ' por ´ (senao ocorre problemas) 
descricao=replace(descricao,"'","´")
fabricante=replace(fabricante,"'","´")
nome=replace(nome,"'","´")


textosql = "INSERT INTO produtos (nome, fabricante, detalhe, preco, precovelho, parcela" _
& ", juro, aomes, estoque, idsessao, data, peso, imgra, impeq, status, destaque, modelo,  acabamento, condicao, vendidosprod) VALUES ('" & nome & "', " _
& "'" & fabricante & "', '" & descricao & "', '" & precon & "', '" & precov & "', '" & parcelamento & "'" _
& ", '" & juros & "', '" & juropor & "', '" & estoq & "', '" & categ & "', '" & dia & "/" & mez & "/" & Year(Date) & "'," _
& " '" & peso & "', '" & image1 & "', '" & image2 & "', 'nao', '" & destaque & "', '" & modelo & "', '" & acabamento & "', '" & condicao & "', '" & vendidosprod & "')"

Set objUpload = nothing

 

bom, se você não encontra o alimento para matar sua fome em

casa, busque na casa do visinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Amigo LendaDoMato.

 

Analisando o seu código vemos que natutalmente isso não é problema de banco de dados ou seja não é o MYSQL que esta sendo ruim com você e por ele ser tão teimoso grava 2 vezes ou 3 ou ate mil vezes a em duplicidade.

 

O banco só está fazendo o que você "mandou" via código ele fazer. Se você tem uma variavel String que esta recebendo esse INSERT dentro do laço de repetição FOR é natural que ele grave 2 ou 3 ou 5 mil vezes a mesma coisa. Outra dica Remova o ON ERROR Resume Next.

 

Portando o amigo DarkDemo está apenas lhe apontando a causa e o que esta acontecendo. ou seja REMOVA o seu INSERT dentro do Loop ou então se é pra inserir, registro por registro, Insira os dados e depois limpe a String de Inserção(textosql="").

 

PS: Não fique bravo com o MYSQL, ele não está fazendo isso de propósito.

 

boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala bonito amigo NeX, gosto de pessoas educadas,

 

abaixo do font q postei acima q agora funciona perfeitamente tem o Next, pq

tenho mais dados a serem gravados, tá tudo certo, me desculpe se eu postei

no lugar errado mas é pq o font q eu tinha anteriormente gravava em banco Access

só depois q mudei para MySQL q vi q não funcionava, por isso foi q postei aqui, veja

o font q gravava em Access:

 

                        Response.Expires = 0
			byteCount = Request.TotalBytes
			RequestBin = Request.BinaryRead(byteCount)
			Set UploadRequest = CreateObject("Scripting.Dictionary")
			BuildUploadRequest RequestBin
			'variaveis
			nome = Trim(UploadRequest.Item("nomeprod").Item("Value"))
                        vendidosprod = Trim(UploadRequest.Item("vendidosprod").Item("Value"))
			categ = Trim(UploadRequest.Item("categ").Item("Value"))
			peso = Trim(UploadRequest.Item("peso").Item("Value"))
			precov = Trim(UploadRequest.Item("precv").Item("Value"))
			precon = Trim(UploadRequest.Item("precn").Item("Value"))
			parcelamento = Trim(UploadRequest.Item("parc").Item("Value"))
			juros = Trim(UploadRequest.Item("juro").Item("Value"))
			juropor = Trim(UploadRequest.Item("jurodia").Item("Value"))
			fabricante = Trim(UploadRequest.Item("fabri").Item("Value"))
			modelo = Trim(UploadRequest.Item("modelo").Item("Value"))
			acabamento = Trim(UploadRequest.Item("acabamento").Item("Value"))
			condicao = Trim(UploadRequest.Item("condicao").Item("Value"))
			descricao = Trim(UploadRequest.Item("descri").Item("Value"))
			estoq = Trim(UploadRequest.Item("estoq").Item("Value"))
			figurg = Trim(UploadRequest.Item("figurag").Item("Value"))
			figurp = Trim(UploadRequest.Item("figurap").Item("Value"))
			destaque = Trim(UploadRequest.Item("destaque").Item("Value"))

			QtdMax = Trim(UploadRequest.Item("maxProd").Item("Value"))
			Estoque = Trim(UploadRequest.Item("maxEstoque").Item("Value"))
                        


			strString = descricao
			'strString = Codifica(strString) 'Usar somente qdo nao se usa a Ferramenta HTMLarea
			strString = Replace(strString,"<P>","<br>")
			strString = Replace(strString,"</P>","")
			if left(strString,4)="<br>" then strString=Mid(strString,5) end if
			descricao = ""
			descricao = strString

			Set selectfig = conexao.Execute("SELECT * FROM produtos WHERE imgra = '" & FileName & "';")


			ContentType = UploadRequest.Item("figurag").Item("ContentType")
			filepathname = UploadRequest.Item("figurag").Item("FileName")
			FileName = Right(filepathname, Len(filepathname) - InStrRev(filepathname, "\"))

			Set selectfig = conexao.Execute("SELECT * FROM produtos WHERE imgra = '" & FileName & "';")

			Value = UploadRequest.Item("figurag").Item("Value")
			Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
			numero1 = instrrev(Request.servervariables("Path_Info"), "/")
			var3 = left(Request.servervariables("Path_Info"),numero1-6)
			Set MyFile = ScriptObject.CreateTextFile(Server.mappath(var3) & "\produtos\imagens\g_" & FileName)
			For i = 1 To LenB(Value)
			MyFile.Write Chr(AscB(MidB(Value, i, 1)))
			Next
			MyFile.Close

                        

			contentType2 = UploadRequest.Item("figurap").Item("ContentType")
			filepathname2 = UploadRequest.Item("figurap").Item("FileName")
			filename2 = Right(filepathname2, Len(filepathname2) - InStrRev(filepathname2, "\"))
			value2 = UploadRequest.Item("figurap").Item("Value")
			
			Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
			numero2 = instrrev(Request.servervariables("Path_Info"), "/")
			var32 = left(Request.servervariables("Path_Info"),numero2-6)
			Set MyFile2 = ScriptObject.CreateTextFile(Server.mappath(var32) & "\produtos\imagens\p_" & filename2)
			For i = 1 To LenB(value2)
			MyFile2.Write Chr(AscB(MidB(value2, i, 1)))
			Next
			MyFile2.Close



			'*** Substitui o ' por ´ (senao ocorre problemas) 
			descricao=replace(descricao,"'","´")
			fabricante=replace(fabricante,"'","´")
			nome=replace(nome,"'","´")


			textosql = "INSERT INTO produtos (nome, fabricante, detalhe, preco, precovelho, parcela" _
			& ", juro, aomes, estoque, idsessao, data, peso, imgra, impeq, status, destaque, modelo,  acabamento, condicao, vendidosprod) VALUES ('" & nome & "', " _
			& "'" & fabricante & "', '" & descricao & "', '" & precon & "', '" & precov & "', '" & parcelamento & "'" _
			& ", '" & juros & "', '" & juropor & "', '" & estoq & "', '" & categ & "', '" & dia & "/" & mez & "/" & Year(Date) & "'," _
                        & " '" & peso & "', 'g_" & FileName & "', 'p_" & filename2 & "', 'nao', '" & destaque & "', '" & modelo & "', '" & acabamento & "', '" & condicao & "', '" & vendidosprod & "')"

enfim, pelo visto esse font não usa componentes, e o q estou usando no momento usa

o Dundas, enfim, caso resolvido!

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.