Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/08/2009, 15:19
Avatar de didix16
didix16
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
necesito Paginar registros de base de datos

wenas de nuevo! bueno esta vez el problema que tengo es es siguiente: Necesito mostrar los registros de una base d datos pero no quiero mostrarlos todos en 1 pagina y los quiero mostrar en diferentes paginas de 50 en 50. Los registros solo me salen los primeros 50, pero al darle a la pagina numero 2 no ace nada , i la 3 ni la 4... y es raro pero deberian salirme unas5 o 6 paginas y me salen 50... y eso seria como 50x50=2500 registros?¿ solot engo 264 registros.. Estoy usando Mysql. Este es el script:
Código PHP:
<?
    mysql_connect
("localhost","root","");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ejemplo de paginaci&oacute;n de resultados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
<!--
a.p:link {
    color: #0066FF;
    text-decoration: none;
}
a.p:visited {
    color: #0066FF;
    text-decoration: none;
}
a.p:active {
    color: #0066FF;
    text-decoration: none;
}
a.p:hover {
    color: #0066FF;
    text-decoration: underline;
}
a.ord:link {
    color: #000000;
    text-decoration: none;
}
a.ord:visited {
    color: #000000;
    text-decoration: none;
}
a.ord:active {
    color: #000000;
    text-decoration: none;
}
a.ord:hover {
    color: #000000;
    text-decoration: underline;
}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<script language="JavaScript">
function muestra(queCosa)
{
    alert(queCosa);
}
</script>
<div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Paginaci&oacute;n 
  de Resultados de una consulta SQL (sobre MySQL) </font></strong> </div>
<hr noshade style="color:CC6666;height:1px">
<br>
<?
    $sql
="SELECT * FROM usuarios.tabla";
    
$res=mysql_query($sql);
    
$numeroRegistros=mysql_num_rows($res);
    if(
$numeroRegistros<=0)
    {
        echo 
"<div align='center'>";
        echo 
"<font face='verdana' size='-2'>No se encontraron resultados</font>";
        echo 
"</div>";
    }else{
        
//////////elementos para el orden
        
if(!isset($orden))
        {
            
$orden="idfoto";
        }
        
//////////fin elementos de orden
        //////////calculo de elementos necesarios para paginacion
        //tamaño de la pagina
        
$tamPag=50;
        
//pagina actual si no esta definida y limites
        
if(!isset($pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }
        
//calculo del limite inferior
        
$limitInf=($pagina-1)*$tamPag;
        
//calculo del numero de paginas
        
$numPags=ceil($numeroRegistros/$tamPag);
        if(!isset(
$pagina))
        {
               
$pagina=1;
               
$inicio=1;
               
$final=$tamPag;
        }else{
            
$seccionActual=intval(($pagina-1)/$tamPag);
            
$inicio=($seccionActual*$tamPag)+1;
            if(
$pagina<$numPags)
            {
               
$final=$inicio+$tamPag-1;
            }else{
                
$final=$numPags;
            }
        }
        
//////////fin de dicho calculo

        //////////creacion de la consulta con limites
        
$sql="SELECT * FROM usuarios.tabla ORDER BY ".$orden.",idfoto ASC LIMIT ".$limitInf.",".$tamPag;
        
$res=mysql_query($sql);

        
//////////fin consulta con limites
        
echo "<div align='center'>";
        echo 
"<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
        echo 
"ordenados por <b>".$orden."</b></font>";
        echo 
"</div>";
        echo 
"<table align='center' width='30%' border='0' cellspacing='1' cellpadding='0'>";
        echo 
"<tr><td colspan='3'><hr noshade></td></tr>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=idfoto'>Imagen</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=nombre'>Nombre</a></th>";
        echo 
"<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=edad'>Mime</a></th>";
        while(
$registro=mysql_fetch_array($res))
        {
?>
<!-- tabla de resultados -->
  <tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];" onClick="javascript:muestra('<? echo "[".$registro["idfoto"]."] ".$registro["nombre"]." - ".$registro["edad"]; ?>');">
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo '<img src="ver_imagen.php?idfoto='.$registro['idfoto'].'">'?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["nombre"]; ?></b></font></td>
    <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><? echo $registro["mime"]; ?></b></font></td>
  </tr>
<!-- fin tabla resultados -->
<?
        
}//fin while
        
echo "</table>";
    }
//fin if
    //////////a partir de aqui viene la paginacion
?>
    <br>
    <table border="0" cellspacing="0" cellpadding="0" align="center">
    <tr><td align="center" valign="top">
<?
    
if($pagina>1)
    {
        echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."'>";
        echo 
"<font face='verdana' size='-2'>anterior</font>";
        echo 
"</a>&nbsp;";
    }

    for(
$i=$inicio;$i<=$final;$i++)
    {
        if(
$i==$pagina)
        {
            echo 
"<font face='verdana' size='-2'><b>".$i."</b>&nbsp;</font>";
        }else{
            echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."'>";
            echo 
"<font face='verdana' size='-2'>".$i."</font></a>&nbsp;";
        }
    }
    if(
$pagina<$numPags)
    {
        echo 
"&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."'>";
        echo 
"<font face='verdana' size='-2'>siguiente</font></a>";
    }
    
//////////fin de la paginacion
?>
    </td></tr>
    </table>
<hr noshade style="color:CC6666;height:1px">
<div align="center"><font face="verdana" size="-2"><a class="p" href="prueva_DBpag.php">::RELOAD::</a></font></div>
</body>
</html>
<?
    mysql_close
();
?>
Si alguien es tan amable de ayudarme le estaria eternamente agradecido Muchas gracias