Foros del Web » Programando para Internet » PHP »

Paginacion de resulatados

Estas en el tema de Paginacion de resulatados en el foro de PHP en Foros del Web. Hola!! Cómo puedo hacer para presentar los resultados de una consulta a una base en diferentes páginas?? Mi intención es hacer que el contenido de ...
  #1 (permalink)  
Antiguo 10/12/2005, 11:43
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 12 años, 8 meses
Puntos: 0
Paginacion de resulatados

Hola!!

Cómo puedo hacer para presentar los resultados de una consulta a una base en diferentes páginas??

Mi intención es hacer que el contenido de UN SOLO REGISTRO(ya que puede contener una gran cantidad de informacion) se presente en varias páginas

Gracias
  #2 (permalink)  
Antiguo 11/12/2005, 12:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 108
Antigüedad: 13 años
Puntos: 1
en desarrolloweb tienes un ejemplo de paginacion te lo recomiendo
  #3 (permalink)  
Antiguo 12/12/2005, 03:02
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 1
Este es secillo y muy efectivo, primero la funcion

Código PHP:

function paginar($actual$total$por_pagina$enlace) {

   
$total_paginas ceil($total/$por_pagina);
  
$anterior $actual 1;
  
$posterior $actual 1;
  if (
$actual>1)
    
$texto "<a href=\"$enlace$anterior\">&laquo; Anterior</a> ";
  else
    
$texto "<b>&laquo; </b>Anterior ";
  for (
$i=1$i<$actual$i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  
$texto .= "<b>$actual</b> ";
  for (
$i=$actual+1$i<=$total_paginas$i++)
    
$texto .= "<a href=\"$enlace$i\">$i</a> ";
  if (
$actual<$total_paginas)
    
$texto .= "<a href=\"$enlace$posterior\">Siguiente &raquo;</a>";
  else
    
$texto .= "Siguiente <b>&raquo;</b>";
  return 
$texto;

Debes de pasar estas variables cuando haces tu query a la base de datos

Código PHP:

// hacemos la peticion a la base de datos con variables para paginar los resultados
// Por defecto, pagina 1, esto dejalo tal cual
if (!isset($pag)) $pag 1
$result mysql_query("select count(*) from TU_CONSULTA'"); // numero total de registros
list($total) = mysql_fetch_row($result);// aqui $total lleva el Nº total de registros
$tampag 15;// el Nº de registros que quieras por pagina
$reg1 = ($pag-1) * $tampag;
$result=mysql_query ("SELECT TU_CONSULTA limit $reg1, $tampag");
if (!
$result){alerta ("Error al pedir consulta","admin_catalogo.php");}

if (
$total==0){die ("No hay ninguna coincidencia");}

Para terminar pon la llamada a la funcion donde quieres que te salgan los numeros de la paginacion

Código PHP:

if ($total>15)
echo 
paginar($pag$total$tampag"TU_PAGINA.php?pag="); 
__________________
Ciao y suerte.
  #4 (permalink)  
Antiguo 12/12/2005, 03:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 29
Antigüedad: 12 años, 1 mes
Puntos: 0
Mira este enlace

http://www.xlwebmasters.com/modules....&f=doc2&id=304
  #5 (permalink)  
Antiguo 12/12/2005, 13:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Creo que están enfocando el problema sobre como paginar "registros" .. nuestro amigo requiere como paginar "campos" por decirlo de alguna forma.

En ese caso .. podrías basarte en las técnicas de propagación de una variable para generar los links de paginado .. Pero lo más importante que necesitarías es como mostrar N registros por indice numérico y no como indice asociativo como suele ser lo común. De esta forma podrías manejar un "puntero" del n° de campo que estás + un desplazamiento de cuantos + quieres mostrar.

Podrías comenzar con ver la función:
mysql_list_fields()
http://www.php.net/manual/en/functio...ist-fields.php

Aunque dicen que está "en desuso" .. usa la alternativa SQL:
SHOW COLUMNS FROM tabla

Y revisa los comentarios de los usuarios de dicha función ...

Un saludo,
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 17:26.