Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/09/2011, 16:12
esaenz22
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Pregunta problema con paginacion php

hola. habia dejando un tiempo de programar en php por motivos de salud y estoy retomando nuevamente para no dejar la practica. he creado 2 funciones php: mostrar_registros y paginar para reducir el codigo de mi programacion. al mostrarlo en la web, me sale el siguiente error:

Código TEXT:
Ver original
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\comenzando-desde cero\repaso 5 (bd)\ejemplo 2 (mostrando datos)\paginacion con funciones\ejemplo3\conexion.php on line 41

he revisado en mi archivo conexion.php la funcion fetch_array y no hay error.

Código PHP:
Ver original
  1. define("SERVIDOR","localhost");
  2.     define("USUARIO","root");
  3.     define("CLAVE","123456");
  4.     define("BASE_DATOS","agenda"); 
  5.    
  6.     $cn = NULL;
  7.     function Conexion()
  8.     {
  9.        global $cn;
  10.        
  11.        if (!($cn=mysql_connect(SERVIDOR,USUARIO,CLAVE)))
  12.        {
  13.           echo "Error conectando a la base de datos.";
  14.           exit();
  15.        }
  16.        if (!mysql_select_db(BASE_DATOS,$cn))
  17.        {
  18.           echo "Error seleccionando la base de datos.";
  19.           exit();
  20.        }
  21.        return $cn;
  22.     }
  23.    
  24.     // ejecuta la query cargada en $sql.
  25.     function query($sql)
  26.     {
  27.         global $cn;
  28.         $query = mysql_query($sql,$cn);
  29.         return $query;
  30.     }
  31.    
  32.     // retorna el numero de filas del result_set ($result)
  33.     function fetch_array($result)
  34.     {
  35.         global $cn;
  36.         $fila = mysql_fetch_array($result);
  37.         return $fila;
  38.     }
  39.    
  40.     // retorna el numero de filas del result_set ($result)
  41.     function num_rows($result)
  42.     {
  43.         global $cn;
  44.         $num_rows = mysql_num_rows($result);
  45.         return $num_rows;
  46.     }

este es mi codigo:

Código PHP:
Ver original
  1. function mostrar_registros($inicio,$registros)
  2. {
  3. global $cn;
  4.        
  5. // declaramos la primera consulta para sacar el total de registros para paginar.
  6. $sql        = "SELECT id FROM contactos";
  7. $rs_sql     = query($sql,$cn) or die(mysql_error());
  8. $total_registros    = num_rows($rs_sql);   
  9.        
  10. // utilizamos una consulta sql para mostrar los datos. declaramos la variable $sql y utilizamos la funcion LIMIT.  
  11. $sql_registros = "SELECT * FROM contactos LIMIT $inicio, $registros";
  12. $query_registros = query($sql_registros,$cn) or die(mysql_error());
  13. $total_paginas = ceil($total_registros / $registros);
  14.        
  15. }
  16.  
  17. function paginar($total_registros,$registros,$pagina,$total_paginas)
  18. {      
  19.        
  20. if($total_registros)
  21. {
  22.    
  23. if(($pagina - 1) > 0)
  24. {
  25. echo "<a href=\"ejemplo3.php?pagina=".($pagina-1)."\"> < Anterior</a>";
  26. }
  27.  
  28.    
  29. for ($i=1; $i<=$total_paginas; $i++){
  30. if ($pagina == $i)
  31. {
  32. echo "<a href = javascript:void(0);>&nbsp;".$pagina."</a>";
  33. }
  34. else
  35. {
  36. echo "<a href=\"ejemplo3.php?pagina=".$i."\">&nbsp;".$i."</a>";
  37. }  
  38. }
  39.          
  40. if(($pagina + 1)<=$total_paginas)
  41. {
  42. echo "<a href=\"ejemplo3.php?pagina=".($pagina+1)."\"> Siguiente ></a>";
  43. }
  44.            
  45.            
  46. }      
  47.        
  48. }

Última edición por esaenz22; 21/09/2011 a las 16:39 Razón: inserte mas codigo para que se entienda mejor el tema.