tengo una tabla con id y quiero tomar de 9 registris por pagina
me gustaria saber para access xD, como se puede hacer
| ||||
bueno de alguna forma tambien sirve top pero yo ocupe esto SELECT * FROM Producto WHERE (((Producto.IDproducto)>5 And (Producto.IDproducto)<10));
__________________ :-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios: :pirata: |
| ||||
Lo recomendable es TOP ya que funciona similar al LIMIT de MYSQL, ya que si no manejas un id consecutivo o algun campo similar esto no funcionaria, saludos.
__________________ El ego es el mayor enemigo de un hombre inteligente. |
| ||||
pero entonces como puedo lograr el efecto de pagina a pgina con el top, ya que eso toma los primeros N elementos ![]()
__________________ :-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios: :pirata: |
| ||||
Bueno eso es cuestion del programador, de esa forma limitas los registros que muestras, existen muchas formas de hacer la interfaz y lograr lo que tu quieres, puedes por ejemplo asi : Código PHP: Código PHP: Saludos y suerte.
__________________ El ego es el mayor enemigo de un hombre inteligente. |
| ||||
si pero como tu lo demuestras eso solo funciona con un campo id
__________________ :-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios: :pirata: |
| ||||
![]() Hola. Tal y como te han indicado puedes utilizar ese tipo de consulta para mostrar rangos... pero yo te recomiendo realizar lo siguiente. Si sabes que siempre vas a mostrar de 9 en 9 los registros solamente necesitas tener claro que tienes un conjunto de datos a mostrar y quieres hacerlo en subconjuntos de 9 elementos en un cierto orden. La solución la obtendrías a partir de una variable que te diga cuantos subconjuntos has enseñado ya. Piensalo como 3 conjuntos. 1. conjunto de registros ya enseñados. 2. conjunto de 9 registros a mostrar. 3. conjunto con el resto de registros hasta el final. (este lo necesitarás para controlar la última página) Solo necesitas la instrucción TOP y una variable y puedes crear el primero de los conjuntos. "Select top 9 ...." El segundo subconjunto lo puedes calcular de forma muy parecida. Pides a tu DB que te muestre todos los registros hasta tu variable "Select top 18 ... " y le quitas los que están incluidos en el primer subconjunto. (Nos interesan los que no están en la intersección de los dos conjuntos). Select top 18 .... MINUS Select top 9 ... De esta manera tendrás como resultado de tu consulta 9 registros en el orden que tu quieras (los puntos suspensivos son el resto de la consulta que ha de ser idéntica en todos los casos, mismos campos y mismo orden). Esto te sirve en cualquier tabla sin tener que utilizar un campo númerico, ya que ahun en el caso de que sea clave primaria y autoincrementado no tienen porqué ser consecutivos. (Si borras algún registro aparecen "saltos" en la secuencia) Te recomiendo que para tratar tu variable utilices el ordinal correspondiente al último registro mostrado,(al empezar has enseñado 0 registros, es decir si vas a mostrar los registros del 90 al 99 utilices el 90 como referencia, así podras poner en tu senténcia SQL "Select top 90+9 ..." (el +9 lo puedes poner en todas las consultas a modo de constante y incrementar de 9 en 9 tu variable). Esto lo digo porque así te ahorras tener que tratar el primer caso ya que harías "Select top 0+9 .... MINUS Select top 0..." (tu variable inicialmente es 0 y eliminarías el conjunto vacío, resultado ok, luego la incrementas tu variable en 9). Esto lo digo porque no sé que devolvería Access en caso de que te descuides del primer caso y le digas "Select top -9..." (los nueve últimos? todos menos los 9 últimos? error?) Espero que te ayude :D PD: Ten en cuenta que todo lo que te he dicho es cierto excepto lo de mostrar de 9 en 9 los elementos por página. Motivo: Select top 9... en caso de empate entre la posición 9 y la 10 no devuelve 9, devuelve 10 registros... Por eso en muchos otros sistemas gestores de Bases de Datos existen instrucciónes como rank o denserank. Última edición por MACGREGOR; 04/10/2006 a las 07:58 |
| |||
![]() Buscando en Internet como Paginar con ODBC y SQL Server Express 2005 me encontre con este posto.. Tengo una gran consulta, como puedo con SQL mostrar los registros por ejemplo del 10 al 20.. Ya que el TOP me muestra los primeros N numeros.... Mi consulta SQL es la siguiente... me gustaria que me ayuden a armarla, ... Gracisa Código PHP: |