este un codigo que hice para listar losdatos personales de unos socios al cual luego encontre un codigo que permite paginar los resultados. El codigo de paginacion lo pude acoplar perfectamente a mi codigo excepto cuando selecciono un filtro al listado. Como pueden ver el listado lo puedo ordenar por apellido o por rut mediante un menu desplegable, el problema es que cuando aplico un ordenamiento, se ordena todo el lista bien en la 1era pagina pero luego se pierde ese ordenamiento en las siguientes paginas. Que me faltaria para que no me pase eso??
Ojala me hayan entendido el problema.
Saludos.
![de acuerdo](http://static.forosdelweb.com/fdwtheme/images/smilies/dedosarriba.png)
Código PHP:
if ($ORDENAR == ORDENAR){
switch ($ordenar){
case 0:
if (!isset($pag)) $pag = 1;
$result = mysql_query("SELECT COUNT(*) FROM socios WHERE (estado='activo')",$bd);
list($total) = mysql_fetch_row($result);
$tampag = 10;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT * FROM socios WHERE (estado='activo') ORDER BY rut
LIMIT $reg1, $tampag", $bd);
break;
case 1:
if (!isset($pag)) $pag = 1;
$result = mysql_query("SELECT COUNT(*) FROM socios WHERE (estado='activo')",$bd);
list($total) = mysql_fetch_row($result);
$tampag = 10;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT * FROM socios WHERE (estado='activo') ORDER BY apellido
LIMIT $reg1, $tampag", $bd);
break;
}
}
else
{
if (!isset($pag)) $pag = 1;
$result = mysql_query("SELECT COUNT(*) FROM socios WHERE (estado='activo')",$bd);
list($total) = mysql_fetch_row($result);
$tampag = 10;
$reg1 = ($pag-1) * $tampag;
$result = mysql_query("SELECT * FROM socios WHERE (estado='activo') ORDER BY num_socio
LIMIT $reg1, $tampag", $bd);
}
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\">«</a> ";
else
$texto = "<b>«</b> ";
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\">»</a>";
else
$texto .= "<b>»</b>";
return $texto;
}
if ($row = mysql_fetch_array($result)){
echo "<center><table width='97%' border= '1' bordercolor= '#0000CC' cellPadding=3 cellspacing=0 align=center> \n";
echo "<tr> \n";
//echo "<td class='celda_encabezado'><b> No. </b></td> \n";
echo "<td class='celda_encabezado'><b><center> RUT </center></b></td> \n";
echo "<td class='celda_encabezado'><b> NOMBRES </b></td> \n";
echo "<td class='celda_encabezado'><b> AP.PATERNO</b></td> \n";
echo "<td class='celda_encabezado'><b> AP.MATERNO </b></td> \n";
//echo "<td class='celda_encabezado'><b> TELEFONO </b></td> \n";
echo "<td class='celda_encabezado'><b> DETALLES </b></td> \n";
echo "<td class='celda_encabezado'><b> MODIFICAR </b></td> \n";
//echo "<td class='celda_encabezado'><b> ELIMINAR </b></td> \n";
echo "<td class='celda_encabezado'><b> CUOTAS </b></td> \n";
//echo "<td class='celda_encabezado'><b> BENEFICIOS </b></td> \n";
echo "</tr \n>";
do {
if($bgcolor == '#FFFFFF')$bgcolor = '#CCCCCC';
else $bgcolor = '#FFFFFF';
echo "<tr> \n";
//echo "<td bordercolor=#FFFFFF bgcolor=".$bgcolor."><div align='center'>".$row["num_socio"]."</div></td>\n";
echo "<td bordercolor=#FFFFFF bgcolor=".$bgcolor."><center>".$row["rut"]."</center></td>\n";
echo "<td bordercolor=#FFFFFF bgcolor=".$bgcolor."><center>".$row["nombre"]."</center></td>\n";
echo "<td bordercolor=#FFFFFF bgcolor=".$bgcolor."><center>".$row["apellido"]."</center></td>\n";
echo "<td bordercolor=#FFFFFF bgcolor=".$bgcolor."><center>".$row["apellido_2"]."</center></td>\n";
//echo "<td bordercolor=#FFFFFF bgcolor=".$bgcolor."><center>".$row["telefono"]."</center></td>\n";
echo '<td bordercolor=#FFFFFF bgcolor='.$bgcolor.'><center><a href="ver_detalles_socio.php?num_socio='.$row["num_socio"].'"><img src="imagenes/ver.gif" width="30" height="30" border="0" /></a></center></td>';
echo '<td bordercolor=#FFFFFF bgcolor='.$bgcolor.'><center><a href="modificar_socio.php?num_socio='.$row["num_socio"].'"><img src="imagenes/modificar.gif" width="30" height="30" border="0" /></a></center></td>';
//echo '<td bordercolor=#FFFFFF bgcolor='.$bgcolor.'><center><a href="eliminar_socio.php?num_socio='.$row["num_socio"].'"><img src="imagenes/eliminar.gif" width="30" height="30" border="0" /></a></center></td>';
echo '<td bordercolor=#FFFFFF bgcolor='.$bgcolor.'><center><a href="pago_de_cuotas.php?num_socio='.$row["num_socio"].'"><img src="imagenes/DOLLAR.gif" width="30" height="30" border="0" /></a></center></td>';
//echo '<td bordercolor=#FFFFFF bgcolor='.$bgcolor.'><center><a href="beneficios_socio.php?num_socio='.$row["num_socio"].'"><img src="imagenes/balls8.gif" width="30" height="30" border="0" /></a></center></td>';
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table></center>\n";
}
else {
echo "¡ La base de datos está vacia !";
}
mysql_close ($bd);