Foros del Web » Programando para Internet » PHP »

Rollo de Paginacion con PHP

Estas en el tema de Rollo de Paginacion con PHP en el foro de PHP en Foros del Web. Buenas amigos estoy haciendo una paginacion con PHP usando variables de sesion pero tengo un problema solo la primera pagina me muestra los resultados tal ...
  #1 (permalink)  
Antiguo 11/12/2007, 15:39
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 16 años, 5 meses
Puntos: 3
Rollo de Paginacion con PHP

Buenas amigos estoy haciendo una paginacion con PHP usando variables de sesion pero tengo un problema solo la primera pagina me muestra los resultados tal y como deben de ser y no se por que adjunto un fragmento del codigo.. cualquier ayuda sera mas que bien recibida..

if (isset($_GET['search_criteria']))
{
$number=$_GET['search_criteria'];
$sql="SELECT knumber,description1,clasification FROM tabla.tabla where knumber like '%".$number."%'";
}

//SELECT * FROM tabla.tabla where knumber like '%2' ORDER BY knumber ASC LIMIT 0,5

?>
<?php
//$sql="SELECT * FROM tabla.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="knumber";
}
//////////fin elementos de orden
//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=8;
//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
// "SELECT knumber,description1,clasification FROM tabla.tabla ORDER BY ";
$sql=$sql."ORDER BY ".$orden." 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' >";
echo "<tr><td></td></tr>";
echo "<th bgcolor='#FF0000'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=knumber'>Knumber</a></th>";
echo "<th bgcolor='#FF0000'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=description1'>Descript ion</a></th>";
echo "<th bgcolor='#FF0000'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=clasification'>Clasifi cation</a></th>";
while($registro=mysql_fetch_array($res))
{
?>
<!---<hr noshade>--->
<!-- tabla de resultados -->
<tr onMouseOver="this.style.backgroundColor='#FF9900'; this.style.cursor='hand';" onMouseOut="this.style.backgroundColor=''"o"];" onClick="javascript:muestra('<? echo $registro["number"]." ".$registro["description1"]." ".$registro["clasification"]; ?>');">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=""><b><? echo $registro["number"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=""><b><? echo $registro["description1"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color=""><b><? echo $registro["clasification"]; ?></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=".(1)."&orden=".$orden."'>";
echo "<font face='verdana' size='-2'>inicio</font>";
echo "</a>&nbsp;";
}

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>";
}

if($pagina!=$numPags)
{
echo "&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($numPags)."&orden=".$orden."'>";
echo "<font face='verdana' size='-2'>final</font>";
echo "</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="index.php">::RELOAD::</a></font></div>
</body>
</html>
<?
mysql_close();
?>
  #2 (permalink)  
Antiguo 12/12/2007, 10:16
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 17 años, 11 meses
Puntos: 3
Re: Rollo de Paginacion con PHP

Y a la verdad que hay tremendo rollo como bien dices
pero a mi consejo para que inventar la rueda si ya esta hecha
Sientate a leer la docu del paginador de jpinedo, claro con el paginador en la mano, y asunto resuelto fin de tu rollo.

no se que te podran recomendar los demás aqui.
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
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 20:55.