Foros del Web » Programando para Internet » PHP »

paginacion optima

Estas en el tema de paginacion optima en el foro de PHP en Foros del Web. Hola, tengo una base de datos MySQL de libros, la cual consta de dos tablas: LIBROS y AUTORES. Por tanto existe una relacion de uno ...
  #1 (permalink)  
Antiguo 20/05/2002, 13:27
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
paginacion optima

Hola,

tengo una base de datos MySQL de libros, la cual consta de dos tablas: LIBROS y AUTORES. Por tanto existe una relacion de uno a muchos entre estas dos, ya que un libro puede tener varios autores.

El caso es que cuando listo libros en pantalla, antes quiero mostrar un mensaje que notifique el número de libros encontrados y que por tanto se van a mostrar. Pues bien, tengo este par de dudas:

- como puedo saber el número de libros que ha devuelto la sentencia SELECT ? Desde luego "mysql_num_rows()" no me sirve ya que el número de lineas del "recordset" no equivale al número de libros encontrados. Entiendo que lo que tengo que hacer es crearme un algoritmo propio que recorra todo el recordset y que vaya contando libros. Pero esto puede ser un poco lento, no? No existe una alternativa más elegante? Bueno, ya sé que podría contar los libros al mismo tiempo en que se muestran y mostrar el mensaje del total de libros encontrados al final pero por razones que no vienen al caso lo quiero mostrar al principio.

Gracias.

Hari
  #2 (permalink)  
Antiguo 20/05/2002, 16:46
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Re: paginacion optima

Hari Seldon, para eso está COUNT(*)

Por ejemplo :
"SELECT COUNT(*) FROM tabla_libros WHERE tu_condicion=se_cumple";

De esta manera, obtendrás el total de respuestas que recibirás con tu select.
Luego, al paginar, y utilizando LIMIT, ya sabrás cuánto es el total.

Te recomiendo que mires mi clase para hacer paginados, que te puede servir, en :<a href='ir.asp?http://www.forosdelweb.com/mensaje.asp?id=65528' target='_blank'>http://www.forosdelweb.com/mensaje.asp?i...</a>

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #3 (permalink)  
Antiguo 20/05/2002, 17:45
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: paginacion optima

gracias por tu respuesta Pablo.

Bueno yo tenia la esperanza de que no hubiera que hacer un select extra para averiguar el número de registros pero ya veo que no.

Por otra parte entiendo que no puedo usar LIMIT para paginar ya que la consulta proviene de un JOIN entre tablas. Por ejemplo SELECT .... LIMIT 0,10 no me devolvería los 10 primeros libros sino los 10 primeros registros. Estoy en lo cierto?

Gracias.
  #4 (permalink)  
Antiguo 21/05/2002, 17:09
 
Fecha de Ingreso: enero-2002
Mensajes: 132
Antigüedad: 15 años, 11 meses
Puntos: 1
Re: paginacion optima

Hola,

si puedesc contar el numero de registros totales después de un SELECT, con la siguiente función....

$totalregistros=mysql_num_rows($recordset);

;) espero que sea esto por lo que preguntabas.


Un saludo, esperando ser de ayuda...
COMUN

<a href='ir.asp?http://www.califato.com' target='_blank'>http://www.califato.com...</a>
<a href='ir.asp?http://www.califato.net' target='_blank'>http://www.califato.net...</a>

<center>
<img src="http://membres.lycos.fr/dipro/new/logo.gif" border=0 width="100" height="30">
<a href='ir.asp?http://dipro.califato.com' target='_blank'>http://dipro.califato.com...</a>
</
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 06:43.