La BD es Access y la ejecuto en ASP mediante SQL, pero la pregunta es general... Os dejo una imágen de mis tablas.
http://img231.imageshack.us/img231/7523/tablassd7.jpg
Bien, intentaré explicarme como mejor pueda, pero es bastante lioso..
En mi BD hay varias tablas, cada una trata un tema: comics,conciertos etc
Pero habrá una tabla en la que el webmaster meterá las noticias que quiere destacar, esta tabla es destacados y sus campos son:
id_destacado: es la identificación en esa tabla, cada articulo destacado tiene su identificación
destacados_tipo: se refiere al número al que está relacionada la tabla.
destacados_noticia: se refiere a id_x de la tabla que sea
destacados_destacado: de momento es un campo que tiene por defecto "Si"
Después está la tabla tipos sus campos son:
id_tipo: esta relacionado con la tabla destacados
tipo_nombre: muestra el nombre de cada tabla relacionado con un número
De manera que por ejemplo podamos tener
Tabla destacados
id_destacado: 1
destacados_tipo: 2 (Sería de tipo discos)
destacados_noticia: 4 (La noticia 4 de la tabla discos)
destacados_destacado: Si
Tabla tipos
id_tipo: 2
nombre_tipo: discos
Espero que se haya entendido medianamente...
Yo,lo que pretendo hacer es un listado, de por ejemplo los últimos 4 articulos destacados y quiero su título y su imágen para ello he hecho este código:
Recojo todo lo que hay en la tabla destacados en orden descendente
Código:
Pongo un contador a 0sentencia="Select * from destacados order by id_destacado desc";
Código:
Me gustaría saber si estoy en lo correcto, ya que me dá fallo primero aquí:contador=0; while (!rstIntranet.eof & contador<=4){ %> <% varmax="Select max(id_destacado)-contador from destacados"; // Como quiero coger los 4 últimos registros, cojo el máximo-contador (que en este momento es 0) y después aumenta vartabla="Select tipo_nombre from tipos where id_tipo=(select destacados_tipo from destacados where id_destacado=varmax)"; // Aquí quiero tener el string que me indique a qué tabla debo atacar ayudada de destacados_noticia. Select Case vartabla // Si la tabla es "comics" que se muestre hola case "comics": Response.Write("hola") case else: Response.Write("adios") End Select <%rstIntranet.Movenext(); contador=contador + 1; // Incrementamos el contador para ir restandoselo al max de id. 4-0,4-1,4-2,4-3,4-4; } %>
Código:
Que creo que es la resta esa del contador, ya que si la quito me dá otro errorvarmax="Select max(id_destacado)-contador from destacados";
Y después aquí:
Código:
Que me dice que pocos parametros.vartabla="Select tipo_nombre from tipos where id_tipo=(select destacados_tipo from destacados where id_destacado=varmax)";
Ejecuto las selects con SQL por si sirve de algo de esta manera:
intra2.Open(varmax,cone,adOpenStatic,adCmdTable);
intra3.Open(vartabla,cone,adOpenStatic,adCmdTable) ;
Espero que me podais ayudar de alguna manera, porque se me está haciendo imposible, sé que hay una manera de hacer consultas, con Access pero no sé usarlo, lo siento por un post tan largo, pero prefería explicar bien lo que me pasaba.