Ir para conteúdo

POWERED BY:

Arquivado

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

AspMan

Problema em montar pesquisa com if

Recommended Posts

Opa, olha eu aqui novamente!...

a dúvida é a seguinte, no sistema q estou fazendo, ele tem uma matriz forçada, ou seja, vai cadastrar UMA PESSOA para outro ID se IDx=5...

só que não consigo saber quantos IDx iguais possuem.... Vale lembrar que tem q cadastrar para o primeiro IDx<5, pois na listagem aparecem vários IDS.. vou postar pra vcs terem uma base...

Imagem Postada

 

ou seja, ele vai pesquisar na coluna Codigo se tem por exemplo 5 registros = 2, se 2 for menor q 5 ele ja efetua o cadastro e fecha conexão, se for =5 faz outra consulta para o 3, se ter 5 registros = 3, passa pra próxima consulta, caso contrario, registra e fecha conexão... seria basicamente isso...

 

eu não consigo fazer essa contagem... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

alguém me ajuda??!!!

 

vlw galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

De repente utilizando "COUNT" para saber quantos registros "X" tem na coluna e ai faz a condição, se for " < 5 " cadastra, " Else " Próximo...

não consegui :blink: tem como dá uma luz aí?!!! qdo busquei por count, me retornou todos os registros, e não por exemplo item por item..

 

a questão do if elseif e else, esse tá de boa, sei trabalhar com ele, mas ta osso montar a pesquisa... pra contar itens iguais...

 

como eu faço pra esse X ser dinamico entende... seria + /- assim

 

n=Codigo+1
set rs = db.execute("SELECT COUNT(Codigo) AS TOTAL FROM novo.relacionamento WHERE Codigo='"& n &"'")

if rs("TOTAL") < 5  THEN

efetua o cadastro
 
else 

faz um loop pesquisa próximo N...
Acho q a lógica é essa... ficou mais facil pra me ajudar agora gente?!!! dá uma mãozinha ae.. vlw feras!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A COUNT é para retornar o total de registros.

 

Poste o que fez...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se te ajuda...

Set rs = db.execute("SELECT Codigo, COUNT(Codigo) AS total FROM novo.relacionamento GROUP BY Codigo")

While Not rs.Eof
	st = rs("Codigo")
	nd = rs("total")
	If nd < 5 Then
		If new_id = "" Then
			new_id = st 'Em ordem crescente, este é o primeiro Codigo < 5 disponível
		End If
	End If
rs.Movenext
Wend

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se te ajuda...

Set rs = db.execute("SELECT Codigo, COUNT(Codigo) AS total FROM novo.relacionamento GROUP BY Codigo")

While Not rs.Eof
	st = rs("Codigo")
	nd = rs("total")
	If nd < 5 Then
		If new_id = "" Then
			new_id = st 'Em ordem crescente, este é o primeiro Codigo < 5 disponível
		End If
	End If
rs.Movenext
Wend

Abs.

poxa vida Public2004, funcionou perfeitamente, eu precisei consultar à partir do menor CODIGO?! por exemplo...

CODIGO | NOME | DATA_CADASTRO

___4 1 20/07/2008

___4 3 21/08/2008

___2 2 19/06/2008

___6 4 28/07/2008

 

pela regra q você fez, ele pegaria primeiramente o 4, depois o 2, certo?! e depois o 6 e assim por diante... mas na verdade eu preciso do 2 primeiro :), resolvi colocando na cláusula de consulta

GROUP BY Codigo ORDER BY Codigo
ficou lindo... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

valeu ae pela ajuda, to te devendo um guaraná, pega na eskina e põe na minha conta!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gifhttp://forum.imasters.com.br/public/style_emoticons/default/clap.gif

ABÇ

Compartilhar este post


Link para o post
Compartilhar em outros sites

SURGIU OUTRA DÚVIDA CRUEL http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

While Not rs.Eof
	st = rs("Codigo")
	nd = rs("total")
	If nd < 5 Then
		If new_id = "" Then
			new_id = st 'Em ordem crescente, este é o primeiro Codigo < 5 disponível
		End If
	End If
rs.Movenext
Wend

isso acontece se nd<5 certo? eu tentei montar o seguinte:

While Not rs.Eof
	st = rs("Codigodopai")
	nd = rs("total")
	If nd < "5" Then
		If novoid = "" Then
			novoid = st 'Em ordem crescente, este é o primeiro Codigo < 5 disponível
		else
		resposta=false
		End If
	elseif nd >= "5" Then
	Set rs2 = db.execute("SELECT nome FROM novo.relacionamento_cadastro except SELECT codigodopai from novo.relacionamento_cadastro order by nome")
			If novoid = "" Then
			novoid = rs2("nome")'Em ordem crescente, este é o primeiro Codigo(nome) <> do codigodopai
			end if
	rs2.close	
	End If
	rs.Movenext
Wend

mas não consegui entender o porque ele só mostra o segundo caso... :unsure: mesmo eu tendo um Codigo < 5

 

Help-me, por favor...:) no aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro caso faça:

If cLng(nd) < 5 Then

 

Poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro caso faça:

If cLng(nd) < 5 Then

 

Poste o resultado.

 

HARGON eae, consegui resolver aqui de outra forma... ficou bom... resolvi assim...

While Not rs.Eof
	st = rs("Codigodopai")
	nd = rs("total")
	If nd < "5" Then
		If novoid = "" Then
			novoid = st 'Em ordem crescente, este é o primeiro Codigo < 5 disponível
		else
		resposta=false
		End If
	End If
	rs.Movenext
Wend	
if nd >= "5" and resposta=false then
	Set rs2 = db.execute("SELECT nome FROM novo.relacionamento_cadastro except SELECT codigodopai from novo.relacionamento_cadastro order by nome")
			If novoid = "" Then
			novoid = rs2("nome")'Em ordem crescente, este é o primeiro Codigo
			end if
	rs2.close	
	End If
ou seja, eu deixei o loop ser realizado, caso ele retornar falso executo o segundo if, q na verdade é mais uma "conclusão" do loop :)

o q você acha dessa solução?!!! vou testar a q você passou!!!

 

EDITADO: 16:05 Acabei de testar a solução que passou e não funcionou, continua retornando o elseif, mesmo q o if < 5 for verdadeiro...

acho q a solução fica desse jeito q montei mesmo... espera resolver o loop, se retornar falso faço o segundo teste, q não tem como fugir dele... :)

 

vlw ae pela gentileza em se dispor a ajudar....

 

caso surgir mais duvidas durante esse projeto, voltarei nesse mesmo tópico.. Fte abraço ae companheiros!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Public2004 e Hargon, ja tenho vocês como parte integrante desse meu projeto..haehaehaeh!!!

 

É o seguinte, eu preciso incluir um carrinho de compras, só q não to conseguindo enviar os dados e armazenar, entende...

andei dando uma lida nesse tópico, http://forum.imasters.com.br/index.php?showtopic=14817, mas ta osso.

 

até agora eu fiz o seguinte

<tr>
			  <td width="79" height="25" align="center" valign="middle" class="detalhe4"><strong>Cod.</strong></td>
				<td width="357" align="center" valign="middle" class="detalhe4"><strong>Produto</strong></td>
				<td width="118" align="center" valign="middle" class="detalhe4"><strong>Valor</strong></td>
				<td width="98" align="center" valign="middle" class="detalhe4"><strong>Escolhido</strong></td>
			  </tr>
			<%bgcolor="detalhe2"%>
			<%set rs = db.execute("select * from novo.produtos ORDER BY nome_produto")
			
			while not rs.EOF
	 	 %>	
			<tr class="<%=bgcolor%>">
			  <td height="23" align="center" valign="middle"><%=rs("codigo")%></td>
				<td valign="middle">  <%=rs("nome_produto")%></td><%id=rs.fields("valor_unitario")%>
				<td valign="middle">    R$ <% response.Write(formatarmoeda(""&id&""))%></td>
				<td align="center" valign="middle"><a href="carrinho.asp?codigo_produto=<%=rs("id_produto") %>">COMPRAR</a></td>
			  </tr>
			<%rs.movenext
			if bgcolor= "detalhe2" then
	bgcolor ="detalhe1"
	else
	bgcolor= "detalhe2"
	end if
			  wend%>
a lógica é assim né... ao clicar em comprar, ele armazena em ?sessões?, mas como exibir na pagina carrinho, esses dados?! pq eu imagino assim, ao clicar em comprar, ele envia o id do produto, e lá coloca a quantidade, calcula o valor e insere os dados no db... isso eu consigo fazer, mas enviar os valores para a próxima página não to conseguindo :o

 

da uma mão ae fera :) ... vlw

 

EDITADO: e ae... alguém pode ajudar?! :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para enviar dados de uma página para outra você pode trabalhar com "Session", após atribuir um nome e valor para a Session, você pode recuperá-la em qualquer lugar da aplicação;

Pode também enviar dados através de um Form Oculto (type=hidden);

E uma terceira forma seria a utilização de "Cookies"...

 

Vlw Amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para enviar dados de uma página para outra você pode trabalhar com "Session", após atribuir um nome e valor para a Session, você pode recuperá-la em qualquer lugar da aplicação;

Pode também enviar dados através de um Form Oculto (type=hidden);

E uma terceira forma seria a utilização de "Cookies"...

 

Vlw Amigo.

Opa, valew aí, mas eu tinha conseguido montar o carrinho de compras, depois de muita dificuldade :), a dúvida agora é a seguinte, como eu faço pra inserir no bd? imagine, q o cliente comprou o produto x, z, h... como eu faço esse insert?... OBS: está tudo armazenado em session...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está tudo armazenado em Session, utilize um laço For, ex:

For Each i In Session.Contents
	Response.Write(Session.Contents.Item(i) & "<br>")
Next

Abs.

realmente não consegui http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

agora eu não to conseguindo fazer isso ir pra página q insere no bd...ou seja, aquela página db.execute (Insert into bla bla bla.... :mellow: se ter como dar uma mão ae beleza? tipo o eu tentei de todo jeito fazer um insert dentro do laço for.. mas neca :huh: ... mas todo jeito vlw por enquanto!!!http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

response.write("EDITADO 16/09/2008 15:07"): IRRULLL, consegui com o LAÇO FOR :), dentro do laço eu coloquei o insert e ele armazena tranquilo... :)

 

por enquanto é só... qq outra dúvida, será postado aqui mesmo... nesse projeto, para não ficar abrindo muitos tópicos...

 

 

SURGIU A DUVIDA, faz dias q queria perguntar, mas sempre q postava esquecia disso, lembra lá no início do tópico a respeito do relacionamento com a tabela... eu irei disponibilizar isso on-line, aí qdo a pessoa terminar o cadastro q clicar em enviar, vou fazer o relacionamento da tabela pra saber o código do patrocinador... eu lanço esse relacionamento numa tabela fixa no bd, com todos os dados encontrados, só para ir buscando nela e encontrar as pessoas do proximo nível e ao final do arquivo, existe um delete from, onde é excluído todos os dados dessa tabela...

isso ocorre numa única rotina, será q vai dar pau quando ter muitos cadastros simultâneos? ou não da nada, já q ele abre a página, monta os dados na tabela e exclui os dados na tabela, exibindo na tela o resultado???!!!

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.