Hola Shilfild,
como te expliqué en el post del CASE (
http://www.forosdelweb.com/f15/error-sintaxis-case-484627/) El problema es que necesitas un recordset para averiguar:
1 - Cual es el
registro maximo que tiene la tabla destacados.
2 - Una vez averiguado, tomar el valor del
campo id_destacado de ese registro en concreto
Asi:
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);
}
%>
Como ves varmax es
siempre una cadena porque contiene la sentencia SQL. Sin embargo, intra2 es un objeto recordset con los datos (si los hay) de esa sentencia SQL. O sea, que si hay un valor maximo en la tabla destacados se guardará en el recordset intra2.
Comprobamos que no esté vacio (!intra2.EOF) y volvemos a buscar un registro en la BD pero esta vez en la tabla tipos.
En el nuevo codigo que has puesto buscas los 4 ultimos destacados de la tabla destacado y luego buscar el campo tipo_nombre de la tabla tipos cuyo campo id_tipo de dicha tabla tipos sea igual al campo destacados_tipo de la tabla destacados cuyo campo id_destacados sea de los pertenecientes a esos 4 ultimos destacados.
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>
Copia y pega y me cuentas. Por cierto quiero recordarte que JScript es
case-sensitive O sea, distingue entre mayusculas y minusculas (no es lo mismo Ramon que ramon)
Un saludo