Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problemas com "Loop ou Repeat Region" em Menu Di


Helinho

Pergunta

Olá,

Eu tenho duas tabelas para montar um Menu Dinâmico através de um banco de dados MySQL. As tabelas são: "SESSOES" e "SUBSESSOES", elas estão relacionadas respectivamente pelos campos "id" e "cod_id" no intuito de montar um menu dinâmico em uma página ASP (produtos.asp).

A tabela "SESSOES" tem:

[id]..[sessao]

.1.....Menu 01

.2.....Menu 02

.3.....Menu 03

.4.....Menu 04

A tabela "SUBSESSOES" tem:

[id]..[cod_id]..[subsessao]

.1........1.........Submenu 01

.2........1.........Submenu 02

.3........1.........Submenu 03

.4........2.........Submenu 04

.5........2.........Submenu 05

.6........2.........Submenu 06

.7........3.........Submenu 07

.8........3.........Submenu 08

.9........3.........Submenu 09

.10......4.........Submenu 10

.11......4.........Submenu 11

• O SELECT da busca no BD é: "SELECT * FROM sessoes INNER JOIN subsessoes ON (sessoes.id = subsessoes.cod_id)"

• O Recordset é "RSmenu"

• Dentro da página "produtos.asp" eu tenho um Repeat Region montando o Menu Dinâmico como se segue abaixo:

<%
Dim Repeat__numRows
Dim Repeat__index

Repeat__numRows = -1
Repeat__index = 0
RSmenu_numRows = RSmenu_numRows + Repeat__numRows
%>


<% While ((Repeat__numRows <> 0) AND (NOT RSmenu.EOF)) %>

  <table>

    <tr> 
      <td>
      <b><%=(RSmenu.Fields.Item("sessao").Value)%></b>
      </td>
    </tr>
    
    <tr>
      <td>
      <%=(RSmenu.Fields.Item("subsessao").Value)%>
      </td>
    </tr>
    
    <tr>
      <td>
      <img src="images/linha.png"/>
      </td>
    </tr>
    
  </table>

<% Repeat__index = RRepeat__index+1
   Repeat__numRows = Repeat__numRows-1
   RSmenu.MoveNext()

   Wend
%>

Esse código acima está me retornando as informações colocando o nome da "sessao" correspondente a cada "subsessao" gerada, como se segue na imagem abaixo:

menuERRO.gif

Porém eu gostaria que o código me retornasse o nome da "sessao" e logo abaixo toda respectiva "subssessao". Ou seja, eu gostaria que o código me retornasse igualzinho a imagem que se segue abaixo:

menuCERTO.gif

O quê preciso mudar para o Menu ficar assim?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

armazene a ultima sessão e verifique se for repetido não exibe.

<%
Dim Repeat__numRows
Dim Repeat__index
Dim sAnt

Repeat__numRows = -1
Repeat__index = 0
RSmenu_numRows = RSmenu_numRows + Repeat__numRows

sAnt=""
While ((Repeat__numRows <> 0) AND (NOT RSmenu.EOF))
%>

  <table>
<%if sAnt<>RSmenu.Fields.Item("sessao").Value then %>
    <tr> 
      <td>
      <b><%=(RSmenu.Fields.Item("sessao").Value)%></b>
      </td>
    </tr>
<% end if %>    
    <tr>
      <td>
      <%=(RSmenu.Fields.Item("subsessao").Value)%>
      </td>
    </tr>
    
    <tr>
      <td>
      <img src="images/linha.png"/>
      </td>
    </tr>
    
  </table>

<% 
sAnt=RSmenu.Fields.Item("sessao").Value

Repeat__index = RRepeat__index+1
Repeat__numRows = Repeat__numRows-1
RSmenu.MoveNext()

   Wend
%>

um modo é esse !!!

Link para o comentário
Compartilhar em outros sites

  • 0

Hoje eu consegui resolver o problema acima descrito para gerar um Menu Dinâmico a partir de um BD MySQL. É o seguinte: eu utilizei dois SQLs e o Do While/Loop para resolver a questão. O código funcionando corretamente segue abaixo.

1) Utilizei o SQL1 para SETar o RSmenu: "SELECT * FROM sessoes"

2) Utilizei o SQL2 para SETar o RSsubmenu: "SELECT * FROM subsessoes WHERE cod_id ='"&RSmenu("id")&"'"

<%
SQL1 = "SELECT * FROM sessoes"
Set RSmenu = conexao.execute(SQL1)
...

Do While Not RSmenu.EOF
Response.Write "<tr><td>"
If sessao = RSmenu("sessao") Then
Response.Write "<b>"&RSmenu("sessao")&"</b>"
Else
Response.Write "<a href='#'><b>"&RSmenu("sessao")&"</b></a>"
End If
Response.Write "</td></tr>"

            SQL2 = "SELECT * FROM subsessoes WHERE cod_id ='"&RSmenu("id")&"'"
            Set RSsubmenu = conexao.execute(SQL2)

        If  Not RSsubmenu.EOF Then
            Do While Not RSsubmenu.EOF
            Response.Write "<tr><td>"
            Response.Write "<a href='#'>"&RSsubmenu("subsessao")&"</a>"
            Response.Write "</td></tr>"
            RSsubmenu.MoveNext
            Loop
            Response.Write "<tr><td><img src='images/linha.gif' width='180' height='1'/></td></tr>"
        End If

RSmenu.MoveNext
Loop
%>

Sendo assim o meu Menu Dinâmico agora ficou assim:

menuOK.gif

Então o tópico está resolvido e espero poder ter ajudado!

Editado por Helinho
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...