Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Devolver cantidad de filas de recordset sin tener en cuenta cláusula Limit

Estas en el tema de Devolver cantidad de filas de recordset sin tener en cuenta cláusula Limit en el foro de Mysql en Foros del Web. Hola a todos. Estoy implementando un paginador en php. Necesito saber como obtener el número total de filas de un recordset, pero sin contemplar la ...
  #1 (permalink)  
Antiguo 31/08/2009, 09:21
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Devolver cantidad de filas de recordset sin tener en cuenta cláusula Limit

Hola a todos. Estoy implementando un paginador en php. Necesito saber como obtener el número total de filas de un recordset, pero sin contemplar la cláusula Limit.
Por ejemplo, supongamos que tengo en MiTabla 50 registros y hago esta consulta:

Select * From MiTabla Limit 0, 10

mysql_num_rows() me devuelve 10, y quiero una función que me devuelva 50.
En todos los ejemplos que vi, se debe realizar una consulta adicional con Count(*) para obtener el total de filas. ¿Existe algún otro método para evitar hacer esta consulta adicional?.

Saludos!.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 31/08/2009, 09:27
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Devolver cantidad de filas de recordset sin tener en cuenta cláusula Limit

Cita:
Por ejemplo, supongamos que tengo en MiTabla 50 registros y hago esta consulta:

Select * From MiTabla Limit 0, 10

mysql_num_rows() me devuelve 10, y quiero una función que me devuelva 50.
Por que no le quitas el limit? así te devolvería los 50.

Cita:
mysql_num_rows() me devuelve 10, y quiero una función que me devuelva 50.
En todos los ejemplos que vi, se debe realizar una consulta adicional con Count(*) para obtener el total de filas. ¿Existe algún otro método para evitar hacer esta consulta adicional?.
No lo gro entender que es lo que quieres hacer.

saludos mariano
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 31/08/2009, 09:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Devolver cantidad de filas de recordset sin tener en cuenta cláusula Limit

Cita:
Hola a todos. Estoy implementando un paginador en php. Necesito saber como obtener el número total de filas de un recordset, pero sin contemplar la cláusula Limit.
Vamos por parte: Si tu problema es de representación en pantalla, estás en el foro equivocado. Esas cosas las tienes que ver en el Foro de PHP, porque sino estás yendo más allá de las reglas del foro (no se permite código no SQL aquí).

De todos modos, tu problema es simple: Si no quieres hacer dos consultas, una para la cantidad de registros y otra para el grupo buscado, entonces tienes que traer todos los registros y de allí tomar la cantidad.
Si no quieres traer todos los registros... bueno, pues simplemente deberás hacer las dos consultas... al menos hasta que alguien invente la forma de saber lo que contiene una base sin preguntarle al DBMS...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 31/08/2009, 10:26
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Respuesta: Devolver cantidad de filas de recordset sin tener en cuenta cláusula Limit

Perdón, me parece que no me expliqué bien. Un paginador necesita saber el tamaño de cada página y la cantidad de registros que se van a paginar. El tamaño de la página, en mi código, es una constante, así que la puedo obtener fácilmente. El problema surge cuando quiero obtener la cantidad total de registros.

huesos52: quiero que me traiga de a 10 registros cada vez, por eso necesito incluir LIMIT en la consulta. Pero necesito una función que en lugar de devolverme 10 como cantidad de filas, me devuelva 50, que es la cantidad de registros que tiene toda la tabla. No estoy queriendo devolver los 50 registros, sino 10, pero si quiero que estos registros sean tenidos en cuenta a la hora de saber cuántos registros hay en total.

gnzsoloyo: mi problema no es de representación gráfica. Es lo que comentas en la segunda parte de tu post. Voy a tener que hacer las dos consultas entonces.

Gracias por sus respuestas!.
__________________
Add, never Remove
  #5 (permalink)  
Antiguo 31/08/2009, 10:57
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Devolver cantidad de filas de recordset sin tener en cuenta cláusula Limit

mariano_donati

lo que intentas hacer lo resulves mas facilmente con php.
Desde mysql debes saber que la clausula limit te devuelve los registros así:

limit 0,10 ---> 10 registros del 1 al 10.
limit 10,10 ---> 10 registros del 11 al 20.
limit 20,10 ---> 10 registros de 21 a 30.


Con base en esto, debes jugar con PHP la forma como se carga el limit dependiendo de la pagina que piensa cargar.

saludos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 07:45.