Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2010, 10:52
Avatar de tatoman
tatoman
 
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 215
Antigüedad: 22 años
Puntos: 1
Secciones y Subsecciones

Hola, mira que tengo experiencia en esto del asp y cada vez que me lio con un nuevo proyecto me atasco de la misma manera, si no es un punto es en otro.

Estoy creando un proyecto muy sencillito y estoy mezclando un menu CSS con una BBDD.

es un menu Horizontal que debe contener varias secciones y estas a su vez varias subsecciones:

Ejemplo:

Emails->yahoo, gmail, hotmail
Deportes -> futbol, basquet, rugby
etc...

He creado la BBDD con 2 tablas,(muestro tabla y campos):

SECCIONES:Id,seccion,titulo
SUBSECCION:Id,seccion_principal,subseccion,titulo

Pues mi idea era hacer un loop (while) por la BBDD hasta que agoto los campos de las secciones, y entre medias poner otro loop (while) con las subsecciones que contienen el campo seccion activo.

me funciona OK, pero creo que eso va a cargar mucho el servidor y si hay muchos usuarios online seguro que me lo tumban.

¿Alguien sabe algo mas secillo de hacer?,

Gracias por anticipado, os dejo el codigo pero es un poco toston:


<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../Connections/conexion.asp" -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<%
' CONEXION PARA LAS CATEGORIAS
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
secciones_numRows = secciones_numRows + Repeat1__numRows
%>
<%
Dim secciones
Dim secciones_numRows

Set secciones = Server.CreateObject("ADODB.Recordset")
secciones.ActiveConnection = MM_conexion_STRING
secciones.Source = "SELECT * FROM secciones"
secciones.CursorType = 0
secciones.CursorLocation = 2
secciones.LockType = 1
secciones.Open()

secciones_numRows = 0
%>
<!-- TemplateBeginEditable name="doctitle" -->
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link rel="stylesheet" type="text/css" href="../menu/menu_style.css" />
</head>

<body>

<div class="nav-container-outer">
<img src="http://www.forosdelweb.com/f15/menu/images/nav-bg-l.jpg" alt="" class="float-left" />
<img src="http://www.forosdelweb.com/f15/menu/images/nav-bg-r.jpg" alt="" class="float-right" />
<ul id="nav-container" class="nav-container">

<%
'CREO LA BARRA DE NAVEGACION CON LAS SECCIONES (SE HACE LOOP A LA BBDD)
DIM seccion, titulo_seccion

While ((Repeat1__numRows <> 0) AND (NOT secciones.EOF))
seccion = (secciones.Fields.Item("seccion").Value)
titulo_seccion = (secciones.Fields.Item("titulo_seccion").Value)
%>
<li><a class="item-primary" href="" target="_self" title="<% response.Write(titulo_seccion) %>"><% response.Write(seccion) %></a>
<ul style="width:150px;">

<%
'CONEXION PARA LAS SUBSECCIONES
Dim Repeat2__numRows
Dim Repeat2__index

Repeat2__numRows = -1
Repeat2__index = 0
subsecciones_numRows = subsecciones_numRows + Repeat2__numRows
Dim subsecciones
Dim subsecciones_numRows

Set subsecciones = Server.CreateObject("ADODB.Recordset")
subsecciones.ActiveConnection = MM_conexion_STRING
subsecciones.Source = "SELECT * FROM subsecciones where seccion_principal LIKE '%" + Replace(seccion, "'", "''") + "%' "
subsecciones.CursorType = 0
subsecciones.CursorLocation = 2
subsecciones.LockType = 1
subsecciones.Open()

subsecciones_numRows = 0
DIM subseccion, titulo, vinculo, votos
%>

<% While ((Repeat2__numRows <> 0) AND (NOT subsecciones.EOF))
subseccion = (subsecciones.Fields.Item("subseccion").Value)
vinculo = (subsecciones.Fields.Item("vinculo").Value)
titulo = (subsecciones.Fields.Item("titulo_subseccion").Val ue)
%>
<li><a href="<%response.Write(vinculo)%>" title="<%response.Write(subseccion)%>" target="_blank" ><%response.Write(titulo)%></a></li>

<% ' HAGO EL LOPP PARA SACAR LA SIGUIENTE SUBCATEGORIA DE ESTA CATEGORIA
Repeat2__index=Repeat2__index+1
Repeat2__numRows=Repeat2__numRows-1
subsecciones.MoveNext()
Wend
%>
<%
'CIERRO EL REGISTRO DE SUBSECCIONES PARA PODER LANZARLO DE NUEVO EN LA PROXIMA CATEGORIA
subsecciones.Close()
Set subsecciones = Nothing
%>

</ul>
</li>
<li><span class="divider divider-vert" ></span></li>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
secciones.MoveNext()
Wend
%>
<li class="clear">&nbsp;</li>
</ul>
</div>
<br/>
<!-- TemplateBeginEditable name="contenido" -->
<table width="100%" border="0">
<tr>
<td>&nbsp;</td>
</tr>
</table>
<!-- TemplateEndEditable -->
</body>
</html>
<%
secciones.Close()
Set secciones = Nothing
%>
<%
subsecciones.Close()
Set subsecciones = Nothing
%>
__________________
Elias Frances
Webmaster (ultimos proyectos) de:
www.internet20.es