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

problema con una consulta

Estas en el tema de problema con una consulta en el foro de ASP Clásico en Foros del Web. Amig@s tengo un problema con una paginita de asp: Resulta que necesito recuperar datos de una BD en una pagina... pero ese no es el ...
  #1 (permalink)  
Antiguo 29/11/2006, 11:02
Avatar de edohen  
Fecha de Ingreso: agosto-2006
Ubicación: Bolivia
Mensajes: 181
Antigüedad: 17 años, 9 meses
Puntos: 5
problema con una consulta

Amig@s tengo un problema con una paginita de asp:

Resulta que necesito recuperar datos de una BD en una pagina... pero ese no es el problema lo que quiero es que lea tres columnas de un registro verticalmente algo asi:

Titulo
foto
texto

aparentemente no hay ningun problema.. pero de toda mi tabla solo necesito los 4 ultimos registros y tienen que estar ordenados de la siguiente forma

titulo titulo
foto foto
texto texto


titulo titulo
foto foto
texto texto

con este codigo hize funcionar pero solo en parte:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<!--#include file ="conex.asp"-->
<body>
<%
dim x
x=1
devuelve="Select * From noticias order by id DESC"
set RS = Conn.Execute(devuelve)
Do While Not RS.Eof
%>
<% if x <= 4 then %>
<table>
<tr>

<td><%
Response.Write(rs.Fields("titulo"))

%>
</td>
<td><%
Response.Write(rs.Fields("id"))
%>
</td>
</tr>
</table>
<% x=x+1
end if
%>
<%
RS.MoveNext
Loop
Conn.Close
%>
</body>
</html>

me sale algo asi:

titulo
foto
texto


titulo
foto
texto

pero los registros que quiero que salgan tambien a la derecha ya no salen.....alguna idea de como puedo modificar esto???
  #2 (permalink)  
Antiguo 29/11/2006, 12:00
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 7 meses
Puntos: 8
Que tal Edohen.


Lo que tienes que hacer es leer de dos en dos registros para que puedas mostrarlos en la forma que indicas, te dejo el siguiente código, espero que sea claro.

Recuerda que con tablas puedes dar el formato que tu quieres a tus datos, no necesariamente como vienen de la base de datos.

Código:
<table>
<%
dim x
x=1 
devuelve="Select * From noticias order by id DESC" 
set RS = Conn.Execute(devuelve) 
Do While Not RS.Eof

%> 

<% if x <= 2 then 
	Dim lstTituloIzq
	Dim lstIdIzq
	Dim lstTituloDer
	Dim lstIdDer


	lstTituloIzq =rs.Fields("titulo")
	lstIdIzq = rs.Fields("id")

	RS.MoveNext
	x=x+1

	If Not RS.Eof Then
		lstTituloDer =rs.Fields("titulo")
		lstIdDer = rs.Fields("id")
	Else
		lstTituloDer =""
		lstIdDer = ""
	End If
%> 
<tr>
<td><% Response.Write(lstTituloIzq )%></td>
<td><% Response.Write(lstTituloDer  %> </td>
</tr>
<tr>
<td><% Response.Write( lstIdIzq  )%></td>
<td><% Response.Write( lstIdDer  ) %> </td>
</tr>
<% 	end if %> 
<%
	RS.MoveNext
Loop
Conn.Close

%>
</table>
Saludos.

P.D. Procurá marcar tu código con el tag [CODE], para que sea un poco más legible, así como lo hice yo.
  #3 (permalink)  
Antiguo 29/11/2006, 12:51
Avatar de edohen  
Fecha de Ingreso: agosto-2006
Ubicación: Bolivia
Mensajes: 181
Antigüedad: 17 años, 9 meses
Puntos: 5
gracias daniel00 eres un genio.... problema solucionado y gracias tambien por el consejo de marcar el codigo con el tag... no sabia que habia esa opcion....

saludos....

PD: esta ayuda es 100 puntos
  #4 (permalink)  
Antiguo 23/06/2008, 19:01
Avatar de edohen  
Fecha de Ingreso: agosto-2006
Ubicación: Bolivia
Mensajes: 181
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: problema con una consulta

Nuevamente yo con un problema similar... hace un tiempo atras se me presento el problema de leer registros de una forma predeterminada.. por lo cual Daniel00 me dio un codigo fabuloso.. que lee registros de a 2...bueno ahora tengo otro problemita ahora necesito leer los registros de a 4 vale decir:

Titulo Titulo Titulo Titulo
imagen Imagen Imagen Imagen
texto Texto Texto Texto

Titulo Titulo Titulo Titulo
imagen Imagen Imagen Imagen
texto Texto Texto Texto

bueno asi deberia verse mi pagina en el navegador.. alguien podria darme una mano??? como deberia ir el codigo?

muchas gracias.
  #5 (permalink)  
Antiguo 25/06/2008, 04:02
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: problema con una consulta

Algo que caracteriza al recordset esque se pueden paginar las fotos, texto,... Es decir que por defecto puedes establecer que en tu página aparezcan 4 fotos.
En conclusion puedes hacer lo siguiente:

Cita:
Filas = 2
Columnas = 2
For f=1 To Filas
Response.Write("<tr>")

For c=1 To Columnas
'aqui va tu código
Next
Next
Espero que te sirva
__________________
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
Publicado por: portillo18
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
  #6 (permalink)  
Antiguo 25/06/2008, 08:18
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: problema con una consulta

solo ten cuidado con las celdas cuando no hayan registros

si tenes 9 registros quedaría así.

1 | 2 | 3 | 4
5 | 6 | 7 | 8
9 |

ahí al final de el nueve se te imprimiría el cierre de tabla eso quiere decir que esa celda te puede quedar centrada o medio rara (depende de tu css)

así que cada vez que hagas un movenext evalúa si es EOF y si es así, salte de el bucle e imprime las celdas restantes para evitar que te quede rara la tabla

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 25/06/2008, 13:10
Avatar de edohen  
Fecha de Ingreso: agosto-2006
Ubicación: Bolivia
Mensajes: 181
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: problema con una consulta

gracias por sus respuestas... entiendo que podria funcionar muy bien con el for... aca les mando mi codigo con el cual estoy leyendo los registros de la BD.
Cita:
cont=1
FOTOS = "select * from galeria where idunidad= '"&uni&"' and idcategoria = '"&cate&"'"
set RS2 = Conn.Execute(FOTOS)
Do While Not RS2.Eof
if cont <= 3 Then
ladoizquierdo = RS2("thumb")
RS2.MoveNext
cont=cont+1
If Not RS2.Eof Then
ladoderecho = RS2("thumb")
else
ladoderecho=""
end if
%>
<table border="1" cellpadding="5" cellspacing="3" bordercolor="#999999">
<tr>
<td width="85" height="62" align="center" bgcolor="#CCCCCC"><img src="../galeria/thumb/<% Response.Write(ladoizquierdo) %>"></td>
<td width="85" height="62" align="center" bgcolor="#CCCCCC"><img src="../galeria/thumb/<% Response.Write(ladoderecho) %>"></td>
</tr>
<% end if %>
</table>
<%
RS2.MoveNext
Loop
%>
con este codigo muestro mis fotos de la siguiente forma:

imagen1 imagen 2
imagen3 imagen 4
imagen5 imagen 6 etc....

pero lo que necesito es mostrar:

imagen1 imagen2 imagen3 imagen4
imagen5 imagen6 imagen7 imagen8
imagen9 imagen10 imagen11 imagen12 etc.........


donde tendria que ir el for??? ya o intenté pero no me funciona.

gracias nuevamente
  #8 (permalink)  
Antiguo 26/06/2008, 03:50
 
Fecha de Ingreso: junio-2008
Ubicación: Valladolid
Mensajes: 38
Antigüedad: 16 años
Puntos: 3
Respuesta: problema con una consulta

Hola!

En el siguiente ejemplo muestro como sacar 16 imágenes en 4 columnas. Si hay menos, se completa con cuadros en blanco. Al trabajar con constantes, se podría configurar para que saliera en tantas filas/columnas para que no haga estos huecos. Es decir, que si el recordset tiene 15 registros, lo saque en 3 filas y 5 columnas, si tiene 16, 4x4, etc. Tambien se podrían paginar los resultados...

NOTA: Puedes ver el ejemplo en funcionamiento en: http://www.freedoniaproducciones.com. En el apartado "Representación de actores y actrices".

Código:
...
sql = "select t.c_tipo_trabajo, t.d_tipo_trabajo, t.d_texto"_
		 &"			, m.d_splash, m.d_media, m.d_texto"_
		 &"  from tipo_trabajo t, media_tipo_trabajo m "_
		 &" where m.c_tipo_trabajo = t.c_tipo_trabajo "_
		 &"   and m.c_tipo_trabajo = "&tipo
...
datosTrabajosTipo = ""
max_col_trabajos = 4
max_trabajos = 16
...
if not rsTrabajosTipo.EOF then
		datosTrabajosTipo = datosTrabajosTipo &""_
		&"	<table border="&chr(34)&"0"&chr(34)&" cellpadding="&chr(34)&"0"&chr(34)&" cellspacing="&chr(34)&"0"&chr(34)&" class="&chr(34)&"W100P"&chr(34)&">"&vbcrlf&""_
		&"		<tr>"&vbcrlf&""_
		&"			<td class="&chr(34)&"alineaIzda"&chr(34)&"><span class="&chr(34)&"trabajos fuente12 negrita"&chr(34)&">>> "&rsTrabajosTipo(1)&"</span></td>"&vbcrlf&""_
		&"		</tr>"&vbcrlf&""_
		&"		<tr>"&vbcrlf&""_
		&"			<td class="&chr(34)&"separadorH10"&chr(34)&"></td>"&vbcrlf&""_
		&"		</tr>"&vbcrlf&""_
		&"		<tr>"&vbcrlf&""_
		&"			<td class="&chr(34)&"alineaIzda alineaTop separadorH40"&chr(34)&"><span class="&chr(34)&"oscuro"&chr(34)&"> "&rsTrabajosTipo(2)&"</span></td>"&vbcrlf&""_
		&"		</tr>"&vbcrlf&""_
		&"		<tr>"&vbcrlf&""_
		&"			<td class="&chr(34)&"separadorH10"&chr(34)&"></td>"&vbcrlf&""_
		&"		</tr>"&vbcrlf&""_
		&"		<tr>"&vbcrlf&""_
		&"			<td id="&chr(34)&"mosaico"&chr(34)&" class="&chr(34)&"celdaTxtDchaTrabajos"&chr(34)&">"&vbcrlf&""_
		&"				<table border="&chr(34)&"0"&chr(34)&" cellpadding="&chr(34)&"0"&chr(34)&" cellspacing="&chr(34)&"0"&chr(34)&" class="&chr(34)&"W100P"&chr(34)&">"&vbcrlf&""_
		&vbcrlf&""_
		&"					<tr>"&vbcrlf
		cont = 0
		do while not rsTrabajosTipo.EOF and cont < max_trabajos
			imgSplash = "<img src="&chr(34)&"../web/media/img/trabajos/"&rsTrabajosTipo(3)&chr(34)&" alt="&chr(34)&rsTrabajosTipo(3)&chr(34)&" border="&chr(34)&"0"&chr(34)&" />"
				media = "<a href="&chr(34)&"../web/media/img/trabajos/"&rsTrabajosTipo(3)&chr(34)&" title="&chr(34)&rsTrabajosTipo(5)&chr(34)&">"&imgSplash&"</a>"
			datosTrabajosTipo = datosTrabajosTipo &""_
			&"						<td class="&chr(34)&"trabajo"&chr(34)&">"&media&"</td>"&vbcrlf
			cont = cont+1
			if cont mod max_col_trabajos <> 0 then
				datosTrabajosTipo = datosTrabajosTipo &""_
				&"						<td class="&chr(34)&"separadorW5"&chr(34)&"></td>"&vbcrlf
			elseif cont < max_trabajos then
				datosTrabajosTipo = datosTrabajosTipo &""_	
				&"					</tr>"&vbcrlf&""_	
				&"					<tr>"&vbcrlf&""_	
				&"						<td colspan="&chr(34)&(max_col_trabajos*2)-1&chr(34)&" class="&chr(34)&"separadorH5"&chr(34)&"></td>"&vbcrlf&""_	
				&"					</tr>"&vbcrlf&""_	
				&"					<tr>"&vbcrlf
			end if
		rsTrabajosTipo.moveNext
		loop
		
		do while cont < max_trabajos			
			datosTrabajosTipo = datosTrabajosTipo &""_
			&"						<td class="&chr(34)&"trabajo"&chr(34)&"></td>"&vbcrlf
			cont = cont+1
			if cont mod max_col_trabajos <> 0 then
				datosTrabajosTipo = datosTrabajosTipo &""_
				&"						<td class="&chr(34)&"separadorW5"&chr(34)&"></td>"&vbcrlf
			elseif cont < max_trabajos then
				datosTrabajosTipo = datosTrabajosTipo &""_	
				&"					</tr>"&vbcrlf&""_	
				&"					<tr>"&vbcrlf&""_	
				&"						<td colspan="&chr(34)&(max_col_trabajos*2)-1&chr(34)&" class="&chr(34)&"separadorH5"&chr(34)&"></td>"&vbcrlf&""_	
				&"					</tr>"&vbcrlf&""_	
				&"					<tr>"&vbcrlf
			end if
		rsTrabajosTipo.moveNext
		loop
		
		datosTrabajosTipo = datosTrabajosTipo &""_		
		&"					</tr>"&vbcrlf&""_
		&"				</table>"&vbcrlf&""_
		&"			</td>"&vbcrlf&""_
		&"		</tr>"&vbcrlf&""_
		&"	</table>"&vbcrlf
	end if
...

response.write datosTrabajosTipo
Saludos!!

Última edición por JoseLAKALePet; 26/06/2008 a las 03:51 Razón: Completar con URL
  #9 (permalink)  
Antiguo 26/06/2008, 07:17
Avatar de edohen  
Fecha de Ingreso: agosto-2006
Ubicación: Bolivia
Mensajes: 181
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: problema con una consulta

Gracias a todos... me sirvió mucho todas las ideas al final el codigo me quedo de esta manera:
Cita:
<table border="0" cellpadding="5" cellspacing="3" bordercolor="#CCCCCC">
<%
uni=session("unidad")
cate=session("cate")
cont=1
filas=3
columnas=4
FOTOS = "select * from galeria where idunidad= '"&uni&"' and idcategoria = '"&cate&"'"
set RS2 = Conn.Execute(FOTOS)
Do While Not RS2.Eof
For f=1 To Filas
Response.Write("<tr>")
For c=1 To Columnas
if not RS2.Eof then
ladoizquierdo = RS2("thumb")
id_gal=RS2("idgaleria") %>

<td width="85" height="62" align="center"><a href="_ppopup.asp?id_gal=<% =id_gal %>" target="popup" onClick="window.open(this.href, this.target, 'width=800,height=600'); return false;"><img src="../galeria/thumb/<% Response.Write(ladoizquierdo) %>" width="75" height="56" border="0"></a></td>
<%
RS2.MoveNext
end if
Next
Response.Write("</tr>")
Next

%>
<%
'RS2.MoveNext
Loop
%>
</table>
Funciona a las mil maravillas sinceramente gracias a todos....Creo que si alguien tropieza con algun problema similar aca tiene muy buenas soluciones.

Saludos.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:42.