Voy a ir por partes porque me estoy liando un poco
Código:
<%@ language="JScript" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<!-- Hay que cambiar esto por el diseño de la propia página -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../Intranet/web/intranet.css" rel="stylesheet" type="text/css">
<link href="../Intranet/web/scroll.css" rel="stylesheet" type="text/css">
</head>
<body>
<!-- #INCLUDE file="ADOJAVAS.inc" -->
<%
cone=Server.CreateObject("ADODB.Connection");
cone.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="+Server.MapPath("portaljoven.mdb"));
rstIntranet=new ActiveXObject("ADODB.RecordSet");
intra2=new ActiveXObject("ADODB.RecordSet");
intra3=new ActiveXObject("ADODB.RecordSet");
sentencia="Select top 4 * from destacados order by id_destacado desc";
rstIntranet.Open(sentencia,cone,adOpenStatic,adCmdTable);
%>
<table border=0>
<%
while (!rstIntranet.eof){
%><tr>
<%
vartabla="Select tipo_nombre from tipos where id_tipo=(select destacados_tipo from destacados where id_destacado='"+ rstIntranet.Fields["id_destacado"].value +"')";
intra3.Open(vartabla,cone,adOpenStatic,adCmdTable);
switch(Case intra3.Fields["tipo_nombre"].Value) {
case "comics":
Response.Write("hola");
break;
default:
Response.Write("adios")
}
%>
</tr>
<%
rstIntranet.Movenext();
}
%>
</table>
<%rstIntranet.close();
cone.close();%>
</body>
</html>
He pegado este código tal cual y lo que yo interpreto es esto, pero me gustaría que me dijeras si lo que pienso está bien, porque a veces me invento incluso teorias xDD
1.- Creamos los 3 recordsets que vamos a usar
2.- Sentencia recoge los 4 datos más altos de DESTACADOS ordenados descendentemente (osea los números mayores)
3.- Ejecutamos la sentencia, entonces tenemos los 4 datos en nuestro recordset.
4.- Mientras rstIntranet no acabe:
Introducimos en la variable vartabla el tipo_nombre de tipos, dónde id_tipo es el destacados_tipo de destacados, el cual será igual al valor en el que estamos en ese momento en el recordset.
5.- Ejecutamos esa sentencia vartabla
6.- Si el tipo_nombre es comics se muestra hola, sino adios
7.- Seguimos con el siguiente registro para saber de qué tablas son el resto de los destacados.
Weno, no sé si lo habré entendido bien >_> pero me dá un error
Error de compilación de Microsoft JScript (0x800A03EE)
Se esperaba ')'
/portal_joven/listado_destacados_zuri.asp, línea 37, columna 12 Linea 37: switch(Case intra3.Fields["tipo_nombre"].Value){
Que yo sepa esa sintaxis está bien,asique no sé... He probado también así pero..
Código:
switch(Case (intra3.Fields["tipo_nombre"]).Value){
Case "comics":
Response.Write("hola");
break;
Default:
Response.Write("adios")
}
Error: Error de compilación de Microsoft JScript (0x800A03F1)
Se esperaba '}'
/portal_joven/listado_destacados_zuri.asp, línea 38
Linea 38: Case "comics":
Por otra parte sobre lo que me has explicado antes
Código:
intra2=new ActiveXObject("ADODB.RecordSet");
intra3=new ActiveXObject("ADODB.RecordSet");
varmax="Select max(id_destacado) from destacados";
' Esto te va a abrir un rs con registro
intra2.Open(varmax,cone,adOpenStatic,adCmdTable);
if (! intra2.EOF) {
vartabla="Select tipo_nombre from tipos where id_tipo=(select destacados_tipo from destacados where id_destacado="+ intra2.fields[0].value +")";
intra3.Open(vartabla,cone,adOpenStatic,adCmdTable);
}
%>
Lo de if(! intra2.EOF) Significa que mientras no sea EOF haga lo de esta variable coincidiendo con la posición en la que está intra2, verdad?
Pero por qué un EOF si el valor máximo sólo sacaría uno?
Weno, muchas gracias por repetirme las cosas una y otra vez xD
**EDITO** No sé si la select de la tabla estará bien hecha, yo le veo muchísima lógica,pero no sé >_> aún asi, si estuviera mal, no habría problema no? Daría adios y punto.