Holas, bbv81.
Como siempre digo, cuando no entiendas qué ocurre con tu programación, debuga: pon prints de todas las variables que tengas, de modo de poder saber qué se está enviando realmente.
Por ahora, de lo que puedo ver, el hecho de que no te repita la consulta en la siguiente página es porque no estás enviando la variable $buscar como haces con la variable de paginación. Vale decir, estaría faltando algo como:
Código PHP:
// acá la recibes
$buscar = (!isset($buscar) ? $_GET["buscar"]: $buscar);
// acá la agregas a los enlaces:
echo "<a href='input.php?pagina=" . $i . "&buscar=".$buscar."'>" . $i . "</a> ";
Lo demás lo veo bien.
A propósito de paginación, te recomiendo que le eches una mirada a la opción Mysql SQL_CALC_FOUND_ROWS en conjunto con la función FOUND_ROWS(), que te quitan mucho trabajo de encima y al pobre servidor también, en cuanto a lo de obtener el total de un conjunto de resultados paginado con LIMIT :P
http://dev.mysql.com/doc/refman/5.0/...functions.html
Saludos!