Holas, el día de ayer realice la misma consulta en el foro. Le di muchas vueltas a este tema.
Cluster me oriento y logre realizar la paginación basada en un procedimiento almacenado el cual retorna los registros de forma paginada, desde PHP solo le envio los parametros y el procedure realiza, es decir simula una paginación.
Acá dejo el codigo del procedimiento almacenado, aún no lo he refinado tanto, pero funciona.
Código:
--SP QUE RETORNA UNA CONSULTA PAGINADA
--RECIBE PARAMETROS PARA LA PAGINACION
CREATE PROCEDURE paginacion_ejemplo
--NUMERO DE PAGINA A MOSTRAR
@index int,
--TOTAL DE REGISTROS POR PAGINA
@num_regs int
AS
BEGIN
--ESTOS SERNA LOS INDICES PARA LA PAGINACION
DECLARE @maximo numeric
DECLARE @minimo numeric
SELECT @maximo = (@index * @num_regs)
SELECT @minimo = @maximo - (@num_regs - 1)
--CREACION DE LA TABLA TEMPORAL PARA LA PAGINACION
--NUM_ORDEN SERVIRA DE INDICE PARA EXTRAER LOS REGISTROS
CREATE TABLE #tmpListado(
num_orden int IDENTITY(1,1),
id_radio int,
nombre_radio varchar(15)
)
--INSERTAR LOS DATOS A LA TABLA TEMPORAL DIRECTAMENTE DESDE EL SELECT
INSERT #tmpListado SELECT id_radio, nombre_radio FROM tb_adm_radio ORDER BY nombre_radio
--UNA VEZ CARGADOS LOS DATOS LOS EXTRAEMOS
--CON UN SELECT FILTRADO POR LOS VALORES DE LA PAGINACION
SELECT id_radio, nombre_radio
FROM #tmpListado
WHERE num_orden BETWEEN @minimo AND @maximo
END
--FIN--
Cualquier información sobre este tema, espero la hagan llegar.
Saludos.
P4blo.-