Hola:
Te invito a revisar el código de Paginator. Un script que hice con la finalidad de hacer las paginaciones mucho más simples. La idea es que entre el código sin paginar y el paginado haya la menor cantidad de cambios. Échale una mirada y me cuentas qué tal te fue.
Para utilizarlo sólo hay que utilizar los nombres de variables adecuados. Puedes ver ejemplos de uso y la documentación en su web (enlace en mi firma).
Tu código con Paginator quedaría así de sencillo:
Código PHP:
<?php
$base = "listado";
$con = mysql_connect('localhost','root','');
mysql_select_db($base,$con);
//Basta definir un par de variables...
$_pagi_sql = "SELECT * FROM discos ORDER BY artista";
$_pagi_cuantos = 4;
//...e incluir el script
include("paginator.inc.php");
// Imprimiendo los resultados
echo "<table aling='left'>";
echo "<tr>
<td bgcolor='#ffcc33'><font face='Arial' color='#0000cc' size=2><b>Nombre Banda</font></td>
<td bgcolor='#ffcc33'><font face='Arial' color='#0000cc' size=2><b>Nombre Disco</font></td>
<td bgcolor='#ffcc33'><font face='Arial' color='#0000cc' size=2><b>Nacionalidad</font></td>
<td bgcolor='#ffcc33'><font face='Arial' color='#0000cc' size=2><b>Año Lanzamiento</font></td>
</tr>";
while($array = mysql_fetch_array($_pagi_result)) {
if ($colorfila==0){
$color= "#DEDEBE";
$colorfila=1;
}else{
$color="#F0F0F0";
$colorfila=0;
}
echo "<tr>
<td bgcolor='".$color."'>".$array['artista']."</td>
<td bgcolor='".$color."'>".$array['nombre_disco']."</td>
<td bgcolor='".$color."'>".$array['nacionalidad']."</td>
<td bgcolor='".$color."'>".$array['año']."</td>
</tr>";
}
echo "</table>";
// Cerramos la conexión a la base
$con=mysql_close($con);
// Mostramos los enlaces de paginación
echo "<p>".$_pagi_navegacion."</p>";
?>
Como ves, todo se pagina de manera casi transparente. Pareciera que ni se está paginando. Y esa era la idea.
Saludos