Una vez tuve que hacer algo parecido. Lo que finalmente hice fue paginar los resultados. Es decir, por ejemplo en la primera página mostrar los resultados del 1 al 10, después del 11 al 20, del 21 al 30. Lo hice más o menos así
Código PHP:
if(!isset($_get['inicio'])) $inicio = 1;
else $inicio = $_GET['inicio'];
if(!isset($_get['fin'])) $fin = 10;
else $fin = $_GET['fin'];
$result = mysql_query("SELECT * FROM tabla WHERE id >= $inicio AND id <= $fin");
while($row = mysql_fetch_array($result)){
/* Lo que se quiera poner aquí */
}
Despues crear los enlaces de las páginas
Código PHP:
echo "<a href=\"pagina.php?inicio=".$inicio+10."&fin=".$fin+10."\">Siguiente</a>";
Espero que se haya entendido. Obviamente hay que hacer las respectivas validaciones para evitar las inyecciones sql y cosas así... eso te lo dejo... Es bastante básico el codigo, falta el link de anterior, etc. Espero que la idea se entienda. Puede tener errores (aquí en Chile son las 3 de la mañana y estoy exhausto.
Saludos!