Ir para conteúdo

POWERED BY:

Arquivado

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

Fibi

Split?

Recommended Posts

Olá

 

Preciso fazer um catálogo de roupas e estou encontrando alguma dificuldade para montar a grade de quantidade de tamanhos por cores.

 

Fiz uma tabela com os seguintes campos:

P

M

G

Cores

 

Pensei em relacionar as cores com cada um dos tamanhos, inserindo no BD e separando por vírgulas, para que eu conseguisse um resultado mais ou menos assim:

 

cor: rosa, roxo, cinza, azul

P: 2, 4, 6, 8

M: 3, 6, 9, 12

G: 5, 10, 15, 20

 

 

Coloquei no meu form esses 4 campos repetidas vezes (todos com os mesmos nomes) para fazer um split, mas só o primeiro conjunto fica gravado no banco.

 

Meu código:

 

 

Dim sConnection, Conn  Dim Count  Dim imagem  Set Upload = Server.CreateObject("Persits.Upload.1")  Upload.OverwriteFiles = False  Count = upload.Save(server.mappath("teste/"))  For Each File in Upload.Files  imagem = File.Path  imagem2 = Mid(imagem, InStrRev(imagem, "\", Len(imagem))+1, Len(imagem)-InStrRev(imagem, "\", Len(imagem)))  Next    modelo = Upload.Form("modelo")  referencia = Upload.Form("referencia")  especificacoes = Upload.Form("especificacoes")  cores = Upload.Form("cores")  PP = Upload.Form("PP")  P = Upload.Form("P")  M = Upload.Form("M")  G = Upload.Form("G")  GG = Upload.Form("GG")  offer = Upload.Form("offer")  cores2 = split(cores,",")  PP2 = split(PP,",")  P2 = split(P,",")  M2 = split(M,",")  G2 = split(G,",")  GG2 = split(GG,",")  break2 = split(break,",")  sConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=x; DATABASE=x; UID=x;PASSWORD=x; OPTION=3"Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open(sConnection) For i = LBound(cores2) to UBound(cores2)sql = "Insert into catalogo (modelo,referencia,especificacoes,cores,PP,P,M,G,GG,offer,imagem) values ('"& modelo &"', '"& referencia &"', '"& especificacoes &"', '"&cores2(i)&"', '"&PP2(i)&"', '"&P2(i)&"', '"&M2(i)&"', '"&G2(i)&"', '"&GG2(i)&"', '"& offer &"', '"& imagem2 &"')"Next			Conn.Execute (sql)Response.Redirect "admin_produtos.asp"  Conn.close  Set Conn = Nothing

 

Alguma idéia de qual possa ser o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte...você só está chamando o método execute do objeto connection após o laço (for)que gera a query "sql" repetidas vezes//ou seja... como o execute está fora do laço ele será executado somenteuma vez e com o último valor para a variável "sql", por isso há somente uma inserção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte...você só está chamando o método execute do objeto connection após o laço (for)que gera a query "sql" repetidas vezes//ou seja... como o execute está fora do laço ele será executado somenteuma vez e com o último valor para a variável "sql", por isso há somente uma inserção.

Obrigada pela resposta. ;]Mudei o execute, mas continua do mesmo jeito. Nem sei se esse é o método mais acertado para o caso, mas foi o único que me ocorreu por enquanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz várias mudanças e continua aparecendo do mesmo jeito. Pensei que o problema estava na maneira que eu adicionava novos campos de mesmo nome no form (javascript), mas tentei manualmente e também não deu. Vi váááários exemplos aqui mesmo no fórum e todos são mais ou menos do jeito que fiz, mas comigo não dá certo.Ao invés de:id = 1modelo = camisetacores = roxo,azul,amareloP = 2,4,6M = 3,6,9etceu obtenho:id = 1modelo = camisetacores = roxo, P = 2, M = 3, etcMais alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

posta o código do teu form//

Compartilhar este post


Link para o post
Compartilhar em outros sites

Form

 

<%Dim sConnection, Conn , RS sConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=x; DATABASE=x; UID=x;PASSWORD=x; OPTION=3" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open(sConnection)set rs=conn.execute ("SELECT * FROM cores ORDER BY cor ASC")Dim sConnection2, Conn2 , RS2 sConnection2 = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=x; DATABASE=x; UID=x;PASSWORD=x; OPTION=3" Set Conn2 = Server.CreateObject("ADODB.Connection") Conn2.Open(sConnection2)set rs2=conn2.execute ("SELECT * FROM modelos ORDER BY modelo ASC")%><html><head><title>Administração de produtos Toalson</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><script language="javascript"><!--function MM_validateForm() { //v4.0  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);	if (val) { nm=val.id; if ((val=val.value)!="") {	  if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');		if (p<1 || p==(val.length-1)) errors+='- '+nm+' este não é um endereço de e-mail válido.\n';	  } else if (test!='R') { num = parseFloat(val);		if (isNaN(val)) errors+='- '+nm+' deve conter apenas números.\n';		if (test.indexOf('inRange') != -1) { p=test.indexOf(':');		  min=test.substring(8,p); max=test.substring(p+1);		  if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';	} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' \n'; }  } if (errors) alert('Os campos abaixo não foram preenchidos:\n'+errors);  document.MM_returnValue = (errors == '');}function addField(){var tbl = document.getElementById('addColor');	 var newRow = tbl.insertRow(tbl.rows.length-1);	 var newCell = newRow.insertCell(0);	 newCell.innerHTML = '<table width="463" border="0" cellpadding="0" cellspacing="0" class="textos2"><tr><td width="143" height="35"><select name="cores" id="Cores"><option>Selecione uma cor</OPTION><%Do While Not rs.EOF%><option value="<%=rs("id_cores")%>"><%=rs("cor")%><%rs.MoveNext 	 Loop %></select></td><td width="64" align="center"><input name="PP" type="text" id="PP" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1" size="3"></td><td width=64 align="center"><input name="P" type="text" id="P" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1" size="3"></td><td width="64" align="center"><input name="M" type="text" id="M" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1" size="3"></td><td width="64" align="center"><input name="G" type="text" id="G" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1" size="3"></td><td width="64" align="center"><input name="GG" type="text" id="GG" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1" size="3"></td></tr></table>';}//--></script></head><body bgcolor="#FFFFFF" text="#000000" link="#84A5AA" vlink="#84A5AA" alink="#84A5AA" onLoad="addField()"><table width="780" border="0" align="center" cellpadding="0" cellspacing="0">  <tr>	<td width="780"><img src="imagens/top.jpg" width="780" height="88" border="0" usemap="#Map"></td>  </tr>  <tr>	<td height="349" valign="top" background="imagens/meio.jpg"><DIV ALIGN="RIGHT">	  <TABLE WIDTH="94%" BORDER="0" align="center" CELLPADDING="0" CELLSPACING="0" CLASS="textos2">		<TR>		  <TD height="18" valign="top"> </TD>		</TR>		<TR>			<TD height="299" valign="top"> 			  <p><B><span class="style3">[ Adicionar produto ] </span></B></p>			  <form name="form" action="adicionar_produto.asp" method="post" enctype="multipart/form-data" ONSUBMIT="MM_validateForm('Modelo','','R','Masculino ou Feminino','','R','Referência','','R','Cores','','R','Stock Offer','','R');return document.MM_returnValue>				<table width="718" border="0" align="center" cellpadding="2" cellspacing="1" class="textos2">				  <tr>					<td HEIGHT="40"><B>Modelo:</B></td>					<td HEIGHT="40" colspan="3">					  <table width="70%" border="0" cellpadding="0" cellspacing="0" class="textos2">						<tr>						  <td width="55%"><select name="modelo" id="Modelo">							<option>Selecione um modelo</OPTION>							<%Do While Not rs2.EOF%>							<option value="<%=rs2("id_modelo")%>"><%=rs2("modelo")%>							<%rs2.MoveNextLoop%>						  </select></td>						  <td width="45%" align="right"><input name="gen" type="radio" id="Masculino ou Feminino" value="Masculino" checked>Masculino						      					     					  <input name="gen" type="radio" id="Masculino ou Feminino" value="Feminino"> 					  Feminino</td>						</tr>					</table></td>				  </tr>				  <tr>					<td HEIGHT="40"><B>Referência:</B></td>					<td HEIGHT="40" colspan="3">					  <input name="referencia" type="text" id="Referência" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1" size="70">					</td>				  </tr>				  <tr>					<td HEIGHT="40" valign="top"><B>Especificações:</B></td>					<td HEIGHT="40" colspan="3">					  <textarea name="especificacoes" cols="70" rows="4" id="Especificações" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1"></textarea>					</td>				  </tr>				  <tr>					<td HEIGHT="40" valign="top"><B><br>					  Cores:						  						  					</B></td>					<td HEIGHT="40" colspan="3">					  <br>					  <table width="463" border="0" cellpadding="0" cellspacing="0" class="textos2" id="addColor">						<tr>						  <td width="614"><table width="463" border="0" cellpadding="0" cellspacing="0" class="textos2">							  <tr>								<td width="189"> </td>								<td width="84" align="center">PP</td>								<td width="84" align="center">P</td>								<td width="84" align="center">M</td>								<td width="84" align="center">G</td>								<td width="89" align="center">GG</td>							  </tr>							  						  </table></td>						</tr>						<tr>						  <td height="40" align="center">[ <a href="#" onClick="addField()">clique aqui para adicionar cores, quantidades e tamanhos</a> ] </td>						</tr>						</table></td>				  </tr>				  				  <tr> 					<td width="93" HEIGHT="40">					  <B>Stock offer:</B></td>					<td width="614" HEIGHT="40" colspan="3">					  <input name="offer" type="radio" id="Stock offer" value="Sim">					  Sim						      					      					  <input name="offer" type="radio" id="Stock offer" value="Não" checked>					  Não</td>				  </tr>				  <tr>					<td HEIGHT="40"><b>Imagem:</b></td>					<td colspan="3" HEIGHT="40">					  <input name="imagem" type="file" id="Imagem" style="font-family: Verdana; font-size: 8 pt; border-style: solid; border-width: 1" size="58">					</td>				  </tr>				  				  <tr> 					<td align="center" colspan="4"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 					  <BR>					  <INPUT TYPE="image" BORDER="0" NAME="imageField" SRC="imagens/botao_enviar.jpg" WIDTH="62" HEIGHT="13" VALUE="Enviar">					  </font></b></td>				  </tr>				</table>			</form>			</TD>		</TR>	  </TABLE>	</DIV></td>  </tr>  <tr>	<td><img src="imagens/bottom.jpg" width="780" height="10"></td>  </tr></table></body></html>  <%   Rs.close  Conn.close  Set Rs = Nothing  Set Conn = Nothing  Rs2.close  Conn2.close  Set Rs2 = Nothing  Set Conn2 = Nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu só vi exemplos aqui no fórum com checkbox de mesmo nome, nada de campos de texto. Seria esse o problema? Preciso de uma luz.

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.