Foros del Web » Programando para Internet » ASP Clásico »

A esta altura, no se me ocurre un título acorde a al tema

Estas en el tema de A esta altura, no se me ocurre un título acorde a al tema en el foro de ASP Clásico en Foros del Web. Tengo que mostrar unas noticias en un boletín. El boletín está compuesto por varias secciones, en donde se accede y se muestran las noticias de ...
  #1 (permalink)  
Antiguo 06/10/2004, 17:32
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
A esta altura, no se me ocurre un título acorde a al tema

Tengo que mostrar unas noticias en un boletín. El boletín está compuesto por varias secciones, en donde se accede y se muestran las noticias de dichas secciones. Pero en la portada del mismo sólo se verán notas de 2 secciones (supongamos "sec1" y "sec2") y su diagramación es la siguiente:

1- Primero muestra una nota "destacada"
2- Abajo, los últimos 6 títulos de "sec1"
3- Al costado, el título y un estracto del texto de las últimas 3 notas de "sec2"

Para esto estoy haciendo 3 recordsets

Para el punto 1: SELECT TOP 1 * FROM noticias WHERE publicar = 'Si' AND DESTACADO = 'Si'
Para el punto 2: SELECT TOP 6 * FROM noticias WHERE publicar = 'Si' AND seccion = 'sec1' ORDER BY FechaYHora DESC
Para el punto 3: SELECT TOP 3 * FROM noticias WHERE publicar = 'Si' AND seccion = 'sec2' ORDER BY FechaYHora DESC


El problema es que la "destacada" del punto 1 puede ser, al mismo tiempo, una de las 6 que se muestran del punto 2 o una de las 3 del punto 3

Bien, ¿cómo demonios le indico a los recordsets del punto 2 y 3 que no incluyan a la noticia destacada, en el caso de encontrarse entre ellas, del punto 1?

Se me entiende? Es que a estas horas ya ando más pelotudo que de costumbre :p
__________________
...___...
  #2 (permalink)  
Antiguo 06/10/2004, 17:39
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Y si solo le dices que en las otras dos, destacado no puede ser 'Si'?

Para el punto 2: SELECT TOP 6 * FROM noticias WHERE publicar = 'Si' AND seccion = 'sec1' AND destacado <> 'Si' ORDER BY FechaYHora DESC
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 06/10/2004, 17:51
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Ah, perdón... me olvidé de comentar que, por ejemplo, si la última y anteúltima de sec1 están marcadas como "destacadas", sólo debe mostrarse en la parte de "destacada" la última ingresada. Y la anterior, "destacada" en su fugaz vida virtual, SI debe mostrarse dentro de las 6 últimas de sec1 (mas no la última "destacada"... y creo que dejo de aclarar que oscurezco)
__________________
...___...
  #4 (permalink)  
Antiguo 06/10/2004, 17:53
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Cita:
Iniciado por u_goldman
Y si solo le dices que en las otras dos, destacado no puede ser 'Si'?

Para el punto 2: SELECT TOP 6 * FROM noticias WHERE publicar = 'Si' AND seccion = 'sec1' AND destacado <> 'Si' ORDER BY FechaYHora DESC

Te adelantaste a responder antes que envíe mi mensaje anterior!
Sabía que podían responder algo así, pero según explico arriba, esa solución no me sirve (creo)
__________________
...___...
  #5 (permalink)  
Antiguo 06/10/2004, 18:01
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
pero si seré pendejo... si sólo se va a mostrar una "destacada" a la vez; ¿por qué no hago un update de destacado = 'No' WHERE destacado = "Si" si y sólo si la nota que se esté cargando sea una destacada?

Así en el aire, me parece una solución viable y puedo usar tu sugerencia, u_g

Igual, hasta que mañana llegue al trabajo no puedo hacer pruebas reales
__________________
...___...
  #6 (permalink)  
Antiguo 06/10/2004, 18:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Pues yo pensaba que en efecto solo puede ser una la destacada...pero otra es que tomes uno de los valores del campo, no se si manejarás un id, con lo cual sería mucho más sencillo de manera tal que al hacer la consulta 2 y 3, le digas AND campo_a_evaluar NOT IN(" & campo_de_la_primera_consulta & ")
y chau...

Un código rapidito que probé:

Código:
Function GetMyId()
	Set rs = Server.CreateObject("ADODB.Recordset")
	strSQL = "SELECT TOP 1 * FROM noticias WHERE publicar = 'Si' AND DESTACADO = 'Si'"
	rs.Open strSQL, ObjConn, 3, 3
	MyId = rs("id")
	rs.close
	GetMyId = MyId
End Function

ID = GetMyId

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL1 = "SELECT TOP 1 * FROM noticias WHERE publicar = 'Si' AND DESTACADO = 'Si'"
strSQL2 = "SELECT TOP 6 * FROM noticias WHERE publicar = 'Si' AND seccion = 'sec1' AND NOT id IN(" & ID &")"
strSQL3 = "SELECT TOP 3 * FROM noticias WHERE publicar = 'Si' AND seccion = 'sec2' AND NOT id IN(" & ID &")"
Salu2,

Editando: El código que puse...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Última edición por u_goldman; 06/10/2004 a las 18:20
  #7 (permalink)  
Antiguo 06/10/2004, 20:06
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Bien, el tema de que sean varias las destacadas y no sólo una no lo recordaba.. pero querían que sigan quedando como destacadas (no sé para qué, ni me importa). Así que el tema de updatear las "destacadas = si" a "no" no me servía. Pero...


Cita:
al hacer la consulta 2 y 3, le digas AND campo_a_evaluar NOT IN(" & campo_de_la_primera_consulta & ")
y chau...
Era más simple de lo que pensaba <--- acá se debería ver el idioticón que se pega una patada en la boca

Gracias u_g
__________________
...___...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:09.