Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/10/2009, 11:25
Avatar de jaullo
jaullo
 
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Paginación con PHP + SQL 2005

Hola a todos, verán, tengo un sistema que esta diseñado para utilizar MySql como gestor principal. Sin embargo por motivos laborales tenemos que usar SQL Server ahora. Hemos trabajado en el pase a sql y casi todo esta listo faltando solo la paginación.

El sistema tiene alrededor de 600 registros que a su vez tiene otros registros dentro (repositorio de datos) por lo cual con Mysql utilizamos la paginación para no mostrar todos los datos de un solo golpe, esto usando LIMIT:

La sintaxis es algo asi:

$sql->query("SELECT * from $default->owl_xxxx_table where parent = '$parent' $whereclause order by name $sLimit");

Lamentablemente esto en sql server no funciona, hemos tratado con algo como lo siguiente:

$sql->query(" SELECT * FROM (SELECT TOP($end) *, ROW_NUMBER() OVER (ORDER BY name) AS RowNum FROM $default->owl_xxx_table where parent = '$parent' $whereclause) x WHERE x.RowNum BETWEEN $beg AND $end");

ó

$sql->query("SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY name) AS rn,* FROM $default->owl_xxx_table where parent = '$parent' $whereclause ) AS sub WHERE rn >= $beg AND rn <= $end");

Tenemos varias paginas (1,2,3,4,5,etc), cada una debería mostrar 10 registros
con lo anterior (claro esta que tenemos dos variables una nextfolders y otra record_per_page q son las de la consulta como $beg,$end) si hago click en la primer página me muestra los 10 registros sin problemas, pero si doy click en 2 me muestra solo 1 y en 3 ya no me muestra nada.

Conocen alguna forma de solventar este problema de paginación, o si tengo algun error en la consulta.



Saludos,