Ir para conteúdo

POWERED BY:

Arquivado

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

fabiosc80

Loop de menu inverso.

Recommended Posts

Tenho um problema aqui.

 

Tenho que pegar o nome de menus no banco de dados e exibi-los nessa ordem.

 

MenuPrincipal >> Secundario >> Terciario>> Quartociario

 

Porêm, tem um porêm, exibir do primeiro pro ultimo fica tranquilo, mas oque eu tenho que fazer é exibir do ultimo pro primeiro.

 

Só que nem em todos os menus tem o menu Quartociario, ou o Terciario. E ai que não estou sabendo como jogar no código a verificação.

 

A tabela é em access e é assim.

 

Id (autonumeração)

Nome(nome do menu)

Pos (posição do menu)

 

Aonde 0(zero) é sempre o menu principal, e algum numero exemplo 5 é vinculo com algum id de sumenu ou menu principal, olhem um exemplo:

 

 

id	nome	pos4	Automóvel	35	Institucional	06	Produtos	07	Serviços	08	Comunicação	09	Certidões	510	Automóvel	611	Escritórios	512	Finanças	513	História	514	Missão e Valores	515	Saúde	616	Riscos Especiais	617	Vida	619	Automóvel	720	Saúde	721	Riscos Especiais	723	Artigos	824	Informe Marítima	8

Alguem sabe como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, acho que colocando o valor do primeiro ao ultimo num array e inverter ele ao exibir, será que não rola?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha oque fiz e não funcionou....

 

 

set nomeMenuP = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "")	if not nomeMenuP.eof then		set nomeMenuS = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuP("pos") & "")			if not nomeMenuS.eof then				set nomeMenuT = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuS("pos") & "")					if not nomeMenuT.eof then						set nomeMenuQ = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuT("pos") & "")			end if		end if		end if					<%=nomeMenuQ("nome")%><br/>	<%=nomeMenuT("nome")%><br/>		<%=nomeMenuS("nome")%><br/>	<%=nomeMenuP("nome")%><br/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só exibem aqueles que tem 4 menus, se tiver 3 ele ja nao pega um valor e alimenta o select anterior.Aonde você ve nomeMenuQ primeiro menu.Exemplo:Produtos = nomeMenuQ Vida = nomeMenuT Empresarial = nomeMenuS PME Taxa Media = nomeMenuP

como você fez onde disse que consegue exibir do primeiro ao ultimo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara...vou tentar uma logica hoje a noite se conseguir sucesso posto aqui amanhã a logica

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Problema que esse site é pras 7 da manha la no cliente....acho que ferrou. Olha essa outra lógica...Continua não funcionando.

set nomeMenuP = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "")		if not nomeMenuP.eof then	set nomeMenuS = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuP("pos") & "")			else	set nomeMenuS = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "")		end if		if not nomeMenuS.eof then	set nomeMenuT = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuS("pos") & "")			else	set nomeMenuT = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "")	end if		if not nomeMenuT.eof then	set nomeMenuQ = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuT("pos") & "")		else	set nomeMenuQ = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "")		end if

cara...vou tentar uma logica hoje a noite se conseguir sucesso posto aqui amanhã a logica

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo fábio...espero que ainda dê tempo....segue baseado na sua primeira lógica:

set nomeMenuP = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "") if not nomeMenuP.eof thennomeMenu1 = nomeMenuP("nome")set nomeMenuS = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuP("pos") & "")if not nomeMenuS.eof then  nomeMenu2 = nomeMenuS("nome")  set nomeMenuT = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuS("pos") & "")  if not nomeMenuT.eof then   nomeMenu3 = nomeMenuT("nome")   set nomeMenuQ = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuT("pos") & "")   if not nomeMenuQ.eof then	nomeMenu4 = nomeMenuQ("nome")   end if  end ifend if	end if			%><%if nomeMenu4<>"" thenResponse.Write(" » "&nomeMenu4)end ifif nomeMenu3<>"" thenResponse.Write(" » "&nomeMenu3)end ifif nomeMenu2<>"" thenResponse.Write(" » "&nomeMenu2)end ifif nomeMenu1<>"" thenResponse.Write(" » "&nomeMenu1)end if%>
Sua lógica estava certa, a mancada é que você tem que armazenar o nome de cada menu em uma variavel

 

Se preferir use assim, além de melhorar o desempenho vai ficar com o codigo mais limpo

set nomeMenuP = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "") if not nomeMenuP.eof then Menu = " » "& nomeMenuP("nome") set nomeMenuS = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuP("pos") & "") if not nomeMenuS.eof then  Menu = Menu & " » "& nomeMenuS("nome")  set nomeMenuT = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuS("pos") & "")  if not nomeMenuT.eof then   Menu = Menu &" » "& nomeMenuT("nome")   set nomeMenuQ = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & nomeMenuT("pos") & "")   if not nomeMenuQ.eof then	Menu = Menu &" » "& nomeMenuQ("nome")   end if  end if end if	end if			%><%if Menu<>"" thenResponse.Write(Menu)end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Janathan

 

Veja como eu tinha solucionado o problema.

 

set nomeMenuP = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & tipo & "")	pos_id=nomeMenuP("pos")	mq=nomeMenuP("nome")		nomeMenuP.close	set nomeMenuP = nothing		set nomeMenuS = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & pos_id & "")				if not nomeMenus.eof then		pos_id=nomeMenus("pos")	mt=nomeMenus("nome")	end if 	nomeMenuS.close	set nomeMenuS = nothing		set nomeMenus = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & pos_id & "")					if not nomeMenus.Eof then			pos_id=nomeMenus("pos")	ms=nomeMenus("nome")	end if		nomeMenuS.close	set nomeMenuS = nothing		set nomeMenus = conn.execute("SELECT nome, id, pos FROM tbTipoNoticia WHERE id = " & pos_id & "")				if not nomeMenus.Eof then		pos_id=nomeMenus("pos")	mp=nomeMenus("nome")		end if		nomeMenuS.close	set nomeMenuS = nothing		%>

Só faltou armazenar mais um vaor e fazer uns tratamentos entre eles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom que conseguiu a tempo...isso mesmo, é a mesma lógica só que nesse segundo você armazenou o nome e i id em variaveis a cada pesquisa no banco, as duas maneiras funcionam...fica ai registrado um bom código pra montagem de menus

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo assim muito obrigado pela tua ajuda Jonathan.Últimamente não tenhyo agradecido por causa da correria. Mas fica aqui o meu registro.Att,

que bom que conseguiu a tempo...isso mesmo, é a mesma lógica só que nesse segundo você armazenou o nome e i id em variaveis a cada pesquisa no banco, as duas maneiras funcionam...fica ai registrado um bom código pra montagem de menus

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.