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

Listar el mismo campo en dos columnas sin repeticiones

Estas en el tema de Listar el mismo campo en dos columnas sin repeticiones en el foro de ASP Clásico en Foros del Web. Lo que necesito es listar en el bucle el mismo campo en dos columnas (dos TD) pero sin que este se repita. Es decir: <tr> ...
  #1 (permalink)  
Antiguo 16/08/2004, 23:50
 
Fecha de Ingreso: agosto-2004
Mensajes: 43
Antigüedad: 19 años, 9 meses
Puntos: 0
Exclamación Listar el mismo campo en dos columnas sin repeticiones

Lo que necesito es listar en el bucle el mismo campo en dos columnas (dos TD) pero sin que este se repita.

Es decir:

<tr>
<td>registro 01 del campo1</td>
<td>registro 02 del campo1</td>
</tr>
<tr>
<td>registro 03 del campo1</td>
<td>registro 04 del campo1</td>
</tr>

Si alguien puede ayudarme desde ya muchas gracias.
  #2 (permalink)  
Antiguo 17/08/2004, 01:44
 
Fecha de Ingreso: marzo-2004
Mensajes: 41
Antigüedad: 20 años, 3 meses
Puntos: 0
Quizas esto te sirva

'HACER LA SELECT
sql = "SELECT * FROM tabla "
Set rs=conn.Execute(sql)

if not rs.EOF then
if Err.Number=0 then

%>
<CENTER>
<TABLE BORDER=4 COLOR=0566>
<TR BGCOLOR=E0E0EE>
<TH> Titulo </TH>
<TH> Fecha </TH>
<TH> Tipo </TH>
<TH> Autor </TH>
<TH> Documento </TH>



<%
rs.movefirst
registros=0
do while not rs.EOF
%>
<TR>
<TD><CENTER><%=rs(6)%></CENTER></TD>
<TD><CENTER><%=rs(2)%></CENTER></TD>
<TD><CENTER><%=rs(5)%></CENTER></TD>
<TD><CENTER><%=rs(3)%></CENTER></TD>

<%
registros=registros+1
rs.movenext
loop

else
Response.Write("Error")
end if
else
%><table><font size=1 color=0e0eee></br></br>NO HAY BUSQUEDAS </font></table>
<%
Response.write "</br><a href=" & "PAGINA.asp" & ">" & "Realizar Nueva Busqueda"
END IF
  #3 (permalink)  
Antiguo 17/08/2004, 23:04
 
Fecha de Ingreso: agosto-2004
Mensajes: 43
Antigüedad: 19 años, 9 meses
Puntos: 0
mtr9, He leido tu respuesta y por lo que entendi has puesto en el bucle

<TR>
<TD><CENTER><%=rs(6)%></CENTER></TD>
<TD><CENTER><%=rs(2)%></CENTER></TD>
<TD><CENTER><%=rs(5)%></CENTER></TD>
<TD><CENTER><%=rs(3)%></CENTER></TD

por lo que el recordset estaria bajando diferentes campos en cada TD, si es que no interprete mal el ejemplo que me pasaste.

Yo necesitaria mostrar en los TD simpre el mismo campo por ejemplo
<TR>
<TD><CENTER><%=rs("articulo")%></CENTER></TD>
<TD><CENTER><%=rs("articulo")%></CENTER></TD>
</TR>
Y que el primer rs me traiga por ejemplo el registro "22" de "articulo" y el segundo rs el registro "23" de "articulo"

Esta seria la cuestion. Espero no ser molesto. Gracias.
  #4 (permalink)  
Antiguo 18/08/2004, 08:37
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
<table>
<%
cnt=1
While Not rs.EOF
%><tr><%
if cnt MOD 2 = 0 Then
%><td>rs(Campo)<%
if Not rs.EOF Then rs.MoveNext
Else Break
End If
End If
%><td>rs(Campo)<%
Cnt = Cnt + 1
if Not rs.EOF Then rs.MoveNext End If
Wend
%>
<Table>
  #5 (permalink)  
Antiguo 18/08/2004, 22:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 43
Antigüedad: 19 años, 9 meses
Puntos: 0
Myakire asi es como adapte el codigo que me pasaste pero, continua el problema
porque por solo me muestra el <tr>con el <td id="2"> ignorando el <td id="1">, quedando cada articulo en cada fila en lugar de quedar dos por fila

<% WHILE NOT Tabla.EOF %>
<tr>
<%
cnt=1
if cnt MOD 2 = 0 Then %>
<td width="50%" id="1">
<%= tabla("Articulo_Titulo") %><br>
<%= tabla("Articulo_Copete") %>
</td>

<% if Not tabla.EOF Then
tabla.MoveNext
Else Break
End If
End If
%>
<td width="50%" id="2">
<%= tabla("Articulo_Titulo") %><br>
<%= tabla("Articulo_Copete") %>
</td>

<% Cnt = Cnt + 1
if Not tabla.EOF Then
tabla.MoveNext
End If
wend
%>
  #6 (permalink)  
Antiguo 19/08/2004, 08:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, el código que te pase primero, lo escribí aquí mismo y no lo probé.
Esto si funciona:
Código:
<table border=1>
<%
cnt=1
i=1
While i < 20
%><tr><%
%><td width="50%" id="1"><%=i%></td><%
%><td width="50%" id="2"><%=i+1%></td><%
  Cnt = Cnt + 1
	i=i+2
Wend
%>
</table>
Ahora solo hay que adptarlo a la tabla, se me ocurre mas o menos asi:
Código:
<table border=1>
<%
cnt=1
i=1
WHILE NOT Tabla.EOF 
%><tr><%
%><td width="50%" id="1"><%=Tabla("Campo1)%></td><%
  if Not tabla.EOF Then tabla.MoveNext Else Break End If
%><td width="50%" id="2"><%=Tabla("Campo1)%></td><%
  Cnt = Cnt + 1
  if Not tabla.EOF Then tabla.MoveNext Else Break End If
Wend
%>
</table>
Esto último no lo probé, pero supongo que funciona.

Saludos
  #7 (permalink)  
Antiguo 19/08/2004, 22:31
 
Fecha de Ingreso: agosto-2004
Mensajes: 43
Antigüedad: 19 años, 9 meses
Puntos: 0
Myakire

La logica del primer codigo funciona muy bien pero al adaptarlo se da que al saltear el primer IF para pasar el td con id=2, no encuentra lo registros y arroja "El valor de BOF o EOF es True, o el actual registro se eliminó".
Disculpa la insistencia, si puedes darme otra ayuda bienvenida, sino continuare probando hasta que salga. Gracias.

<%
cnt=1
i=1
WHILE NOT Tabla.EOF
%>
<tr>
<td width="50%" id=1>
<%= tabla("Articulo_Titulo") %>
<%= tabla("Articulo_Copete") %>
<td>

<%
if Not tabla.EOF Then
tabla.MoveNext
Else Break
End If
%>
<td width="50%" id=2>
<%= tabla("Articulo_Titulo") %>
<%= tabla("Articulo_Copete") %>
</td>
</tr>
<%
Cnt = Cnt + 1
if Not tabla.EOF Then
tabla.MoveNext
Else Break
End If
Wend
%>

Última edición por Cream; 19/08/2004 a las 22:36
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 12:57.