Error en visión del resultado de una búsqueda con varias paginas

Soy nuevo en esto y tengo una pagina asp que me muestra el resultado de una búsqueda previa, el resultado que me muestra es en orden alfabetido ascendente y necesitaría que fuera descendente,

Por ejemplo que si el orden es la fecha que me muestre primero los mas nuevos y por ultimo los mas antiguos

Otra cosa que me pasa es que me muestra varias paginas ya que aveces no caben todos los registros en una sola pagina, pero cuando pulsas para ver la pagina da el error:

El sitio web no puede mostrar la página

Adjunto código haber si me puedes ayudar ya que yo lo he intentado todo y no consigo solucionar ninguno de los dos fallos, muchas gracias de antemano

<%@ LANGUAGE = VBScript %>
<%
tipo = request("tipo")
usu = request("usu")
mypage = request.querystring("whichpage")
response.write(sSQL)
If mypage = "" then
mypage = 1
end if
mypagesize = 280
Set con = server.createobject("adodb.connection")
Set rs = server.createobject("adodb.recordset")
accessdb = "usuarios.mdb"
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath(accessdb)
cn.open DSN
sSQL = "SELECT id, matricula, nombre, fechar FROM usuarios WHERE " & tipo & " like '%" & usu & "%';"
rs.cursorlocation=3
rs.cachesize=5
rs.open sSQL,con
rs.movefirst
rs.pagesize=mypagesize
maxcount=cint(rs.pagecount)
rs.absolutepage=mypage
howmanyrecs=0
cPag = "Página " & mypage & " de " & maxcount
nRec = rs.recordCount
%>
<html>
<head>
<title></title>
<style type="text/css">
BODY{font-family:Verdana,Arial;font-size:9pt}
</style>
<SCRIPT LANGUAGE="JavaScript">
function Cabeza()
{
var texto = "<html><head><title></title><style type='text/css'>";
texto += "BODY{font-family:Verdana,Arial;font-size:9pt}</style></head><body bgcolor='white'>";
texto += "<table width='700' border='0' cellspacing='0' cellpadding='0'><tr><td>";
texto += "<span style='font-family:Verdana; font-size: 16pt; color: navy'>Solicitudes registradas.- (<%=nRec%>)</span>";
texto += "</td><td align='right' valign='top'><a href='utiusu.asp?opcion=vuelta' target='_top'>";
texto += "<img src='volver.gif' border='0' alt='Pulse aquí para volver al menu de utilidades'></a></td></tr></table>";
texto += "<table border='1' cellspacing='0' cellpadding='1' style='font-size: 9pt; font-family: Arial; color: Navy; background-color: white;'>";
texto += "<tr style='font-size: 9pt; font-family: Arial; color: #FFFFFF; background-color: #008080;'>";
texto += "<th width='100'>Matrícula</th><th width='400'>Nombre</th><th width='100'>Fecha</th>";
texto += "<th width='100'>?</th></tr></table></body></html>";
parent.cabeza.document.open();
parent.cabeza.document.write(texto);
parent.cabeza.document.close();
}
</SCRIPT>
</head>
<body style="background-color:white;" onLoad="Cabeza();">
<table border="1" cellspacing="0" cellpadding="1" style="font-size: 9pt; font-family: Arial; color: Navy; background-color: white;">
<%
do while not rs.eof and howmanyrecs<rs.pagesize
afecha = split( rs("fechar"), " ")
cfecha = aFecha(0)
%>
<tr>
<td align="center" width="100">&nbsp;<%=rs("matricula")%></td>
<td align="left" width="400">&nbsp;<%=rs("nombre")%></td>
<td align="center" width="100">&nbsp;<%=cfecha%></td>
<td align="center" width="100"><a href="verbol.asp?id=<%=rs("id")%>" target="_top" title="Pulse aquí para acceder al boletín.">Ver</a></td>
</tr>
<%
rs.movenext
howmanyrecs=howmanyrecs+1
loop
rs.close
set rs = nothing
cn.close
set con = nothing
%>
</table>
Páginas...:
<%
for counter = 1 to maxcount
if counter = mypage then
ref = counter
else
ref="<a href='buscas2.asp?whichpage=" & counter & "&sql=" & Server.URLEncode(sSQL) & "'>" & pad & counter & "</a>"
end if
%>
<%=ref%>&nbsp;
<%
next
%>
</body>
</html>

1 respuesta

Respuesta
1

sSQL = "SELECT id, matricula, nombre, fechar FROM usuarios WHERE " & tipo & " like '%" & usu & "%';" <- En esta parte te falta el order by NombreCampo (TIPOORDENAMIENTO) asc O desc

Example

SELECT id, matricula, nombre, fechar FROM usuarios WHERE nombreCampo='test' order by asc

saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

¿Estoy intentando realizar el cambio y no lo consigo según tu como quedaría esta línea? ¿Para qué se un orden descendente por el campo de la base de datos que se denomina " fechar "?

sSQL = "SELECT id, matricula, nombre, fechar FROM usuarios WHERE " & tipo & " like '%" & usu & "%';"

¿Este cambio conseguirá también que se vean el resto de páginas? Ya que si la búsqueda tiene más de 280 resultados, se muestra al pie un indice de páginas para poder ver el resto de los resultados
Un saludo y muchas gracias

sSQL = "SELECT id, matricula, nombre, fechar FROM usuarios WHERE " & tipo & " like '%" & usu & "%'  order by matricula asc ;"

Maneja el (asc o desc) <- Esta seria una variable, ya declarada y con un valor por default..

Si afecta a las demás páginas ya que estará recuperando el valor de tú variable.

Saludos …
http://www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce

Si que los ordena por el orden indicado, pero hay 725 apuntes por lo que me aparece al pie varias páginas ya que en cada una solo salen 280 apuntes,

El problema esta que al pinchar para que vaya a la página 2 o 3 da el siguiente error:

El sitio web no puede mostrar la página HTTP 500

Causas más probables:

  • El sitio web está en mantenimiento.
  • El sitio web tiene un error de programación.

  Puede intentar lo siguiente:   Actualice la página.   Regresar a la página anterior.

Muchas gracias

Te recomiendo que el tamaño de la pagina sea personalizable.

Maneja algo asi

La paginación se concentra dentro de una tabla.

<%
response.write "<td align=center><a href=NombrePagina.asp?seleccione="&seleccione&"&texto="&texto&"&alf="&alf&"&orden="&orden&"&tamanopagina="&tamanopagina&"&paginaabsoluta=" & atras & "><img src=imagenes2/next.png width=16 height=16 style=border:0 alt=First Page  /></a></td>"

%>

La manera en que la manejas es de este modo:

ref="<a href='buscas2.asp?whichpage=" & counter & "&sql=" & Server.URLEncode(sSQL) & "'>" & pad & counter & "</a>"

Y revisando a detalle estas enviando tu consulta motivo por el cual es incorrecto, y a su vez revisando a detalle este tema

"&sql=" & Server.URLEncode(sSQL) &  <- No veo que captures este valor ????

ref = counter <- en esta parte tendría que ser similar a la parte de arriba.

& pad & counter & <- ?????????

Partes de un valor inicial, sin filtros si búsquedas etc, a menos claro que los asignes y aun asi estarías partiendo del mismo lugar.

Ahora bien lo basico

PagIni, AntPag, SigPag, PagFin.

1.- Sin buesquedas y sin nada.

2.- Tienes que enviar el numero de pagina 1+1= 2

Página 2, tamaño de pagina y los filtros de búsqueda y el tipo de
Por lo que veo tu paginacion empieza de 280, por lo tanto enpieza la 2da pagina del registro de 281 + 280=561
281 al 561 <- segunda pagina y asi sucesivamente.
Con atencion a los otros casos restantes seria a la inversa.
El la pagina Final "4.-"
Tienes que obtener el total de registros entre el tamanio de la pagina para poder obtener el rango de tu pagina final.
Recuerda que tienes que obter el numero entero de la divicion.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas