Foros del Web » Programando para Internet » PHP »

ayuda para paginar registros.

Estas en el tema de ayuda para paginar registros. en el foro de PHP en Foros del Web. Encontré este código en la sección de preguntas frecuentes, conecta con la base y todo bien, pero al momento de pulsar el botón siguiente o ...
  #1 (permalink)  
Antiguo 30/12/2010, 16:16
Avatar de nuuk_ikel  
Fecha de Ingreso: agosto-2008
Ubicación: [ Dimensión desconocida ]
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 3
Pregunta ayuda para paginar registros.

Encontré este código en la sección de preguntas frecuentes,
conecta con la base y todo bien, pero al momento de pulsar el botón
siguiente o pulsar uno de los números, no pasa nada, no muestra los siguientes registros.

Aun soy nuevo con php, espero alguien pueda ayudarme.
a solucionar este problema.
Código PHP:
<?php 
######################################################## 
## PAGINAR REGISTROS 
## POR: Marco A. Castillo 
## EMAIL: [email protected] 
######################################################## 
# Funcion para conectar a la base de datos 
function conectar($host,$user,$pass,$db){ 
$link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos"); 
@
mysql_select_db($db,$link) or die("Error Seleccionando base de datos."); 
return 
$link

  
$host "localhost"
$user "user"
$pass "pass"
$db "base"
  
# Se crea la variable $link que es para identificar la coneccion 
# a la base de datos 
$link conectar($host,$user,$pass,$db); 
  
# aqui colocan la tabla que se utilizara para 
# extraer los registros y paginarlos 
$tabla "arte"
  
# aqui se extrae la cantidad de registros totales 
$rsC mysql_query("Select count(*) from ".$tabla); 
$resultC mysql_fetch_array($rsC); 
$count $resultC[0]; 
  
# Aqui se pone la cantidad de registros por pagina 
# que se quieren mostrar 
$hasta 1
  
if(
$pag==""){ 
 
$desde 0
 
$pag 1;     

else{ 
 
$pag $_GET["pag"]; 
 
$pagS $pag 1
 
$desde $hasta $pagS;     

  
$rs mysql_query("select * from ".$tabla." limit $desde,$hasta"); 
if(
$count!=0){ 
 while(
$result=mysql_fetch_array($rs)){ 
  
# Aqui colocan su tabla html y sus datos a mostrar 
  # solo se usa el array $result[""] y entre comillas 
  # el nombre de la celda a mostrar. 
  
echo $result["cabeza"]."<br>\n";     
  
# fin del despliegue personalizado. 
 


else{ 
 echo 
"No tenemos registros.";     

mysql_close($link); 
  
# aqui se llama a la funcion que muestra los links por paginas 
# la variable $extra_variables es para anexar mas variables al url 
# si es necesario para los querys que hagan. 
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2 
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion 
# para que aparesca dentro de la celda que desee. 
# link totales es una variable al ser definida le dices a la funcion 
# cuantos links quieres que aparescan por pantalla ya que si tienes 
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios 
$link_totales 5
# se llama la funcion paginar 
# los links si tiene un css podran tomar la estructura y color que le pongas 
## Inicia Paginador 
paginar($count,$hasta,$pag,$link_totales,$extra_variables); 
# Funcion paginar 
# Inicia 
function paginar($count,$hasta,$pag,$link_totales,$extra_variables){ 
    if(
$link_totales==1)$link_totales=2
    
$links $count $hasta
    
$arriba $link_totales 2
    
$abajo $pag 1
    if(
$abajo==0)$abajo 1
    
$temp_r $links $pag
    if(
$temp_r>=$arriba){ 
     
$link_break $pag $arriba
    } 
    else{ 
     
$link_break $links
     
$abajo $pag $arriba
     if(
$pag==$links-1)$abajo $pag $arriba
     if(
$pag==$links)$abajo $pag $arriba
    } 
  
    if(
$pag==1)$link_break $link_totales
    if(
$abajo==0)$abajo=1
    if(
strlen($extra_variables)!=0$extra_variables "&".$extra_variables
  
    if(
$pag==1){ 
     
$anterior 1;     
    } 
    else{ 
    
$anterior $pag 1;     
    } 
    if(
$pag!=1){ 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>"
    } 
  
    for(
$i=$abajo;$i<=$links;$i++){ 
     if(
$link_break<$i){ 
      break; 
     } 
     else{ 
        if(
$pag==$i){ 
        echo 
$i." | ";     
        } 
        else{ 
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>"
        echo 
$i
        echo 
" | </a>"
        } 
     } 
    } 
    if(
$pag==$links){ 
    
$siguiente $links
    } 
    else{ 
    
$siguiente $pag 1
    } 
    if(
$pag!=$links){ 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>"
    } 

?>
__________________
[ Si hay un problema, existe una solución ]
  #2 (permalink)  
Antiguo 30/12/2010, 16:31
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: ayuda para paginar registros.

POST REPETIDO: http://www.forosdelweb.com/f18/ayuda-872713/

debes de tener paciencia, estamos para ayudarte, pero evita repetir los mensajes, y lee la política del foro

con respecto al tema:
¿te muestra algún error?: usa error_reporting(E_ALL); para ver si sale alguno.

trata de colocar tu código completo, porque el que muestras es solo la plantilla y el error puede estar ocurriendo cuando añades tu código propio
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 30/12/2010, 16:41
Avatar de nuuk_ikel  
Fecha de Ingreso: agosto-2008
Ubicación: [ Dimensión desconocida ]
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: ayuda para paginar registros.

No, no aparece ningún error, y ese es el código tal como lo encontré en las preguntas frecuentes. Como dije antes, funciona todo bien, pagina los registros, pero al momento de pulsar el botón "siguiente", no pasa nada, no se actualizan los registros, perdón por repetir el tema, el anterior si tenia un error y no hay opción para borrar.
__________________
[ Si hay un problema, existe una solución ]
  #4 (permalink)  
Antiguo 30/12/2010, 16:46
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: ayuda para paginar registros.

Imprime la sentencia SQL

Seguramente no cambia al pulsar el botón...

Por lo tanto, ideas:

Comprueba el nombre del enlace o mejor dicho, del parámetro que estas pasando desde tu botón siguiente.

Comprueba que ese mismo nombre se usa en tu php, por ejemplo, imprime por pantalla la variable $_GET de la página, y también la que recoge tu aplicación... si no encuentras nada postea y te ayudamos!

Un saludo!
  #5 (permalink)  
Antiguo 30/12/2010, 16:47
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: ayuda para paginar registros.

Saludos

Posiblemente es que no se este pasando el parámetro correctamente por get

Imprime el query y verifica que se modifican los valores del limit al momento de oprimir sobre otra pagina
Código MySQL:
Ver original
  1. echo "select * from ".$tabla." limit $desde,$hasta";
  2. $rs = mysql_query("select * from ".$tabla." limit $desde,$hasta");
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #6 (permalink)  
Antiguo 30/12/2010, 19:27
Avatar de nuuk_ikel  
Fecha de Ingreso: agosto-2008
Ubicación: [ Dimensión desconocida ]
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: ayuda para paginar registros.

mmm pues ya lo hice, en efecto no se modifican los valores podrían ayudarme con este problema?
__________________
[ Si hay un problema, existe una solución ]
  #7 (permalink)  
Antiguo 31/12/2010, 03:36
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: ayuda para paginar registros.

Cita:
Iniciado por nuuk_ikel Ver Mensaje
mmm pues ya lo hice, en efecto no se modifican los valores podrían ayudarme con este problema?
Has comprobado el nombre de los parámetros get?

Etiquetas: paginar, registros
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 15:24.