Criando uma paginação com PHP e Mysql

Vamos criar uma paginação do tipo (primeira página – 1 | 2 | 3 | 4 – última página)


<?php
//Conexão com o Banco de Dados
require_once('conexao.php');

// Começando a Paginação

// Quantidade de registros a ser mostrados
$quantidade = 12;

// Verificando se existe $_GET['pagina'], caso não exista atribuimos o valor 1 a ele 
$pagina     = (isset($_GET['pagina']) ? (int)$_GET['pagina'] : 1);

// Fazendo um conta para saber apartir de qual registro ira começar a paginação
$inicio     = ($quantidade * $pagina) - $quantidade;

//Selecionamos o banco de dados
mysql_select_db($database_conexao, $conexao);

// Montamos a query e colocamos as variaveis criada no LIMIT do mysql para mostrar os registros
$query_rsFotos = "SELECT * FROM tabela ORDER BY ID DESC LIMIT $inicio, $quantidade";

// executamos a query
$rsFotos = mysql_query($query_rsFotos, $conexao) or die(mysql_error());
$row_rsFotos = mysql_fetch_assoc($rsFotos);
$totalRows_rsFotos = mysql_num_rows($rsFotos);

// Agora precisamos verificar a quantidade de registros 
// Montamos a query
$sqlTotal    = "SELECT ID FROM tabela";

// Executamos a query
$qrTotal     = mysql_query($sqlTotal, $conexao) or die(mysql_error());

//recuperamos o total de registros
$numTotal    = mysql_num_rows($qrTotal);

// Aqui faremos uma conta, pegamos o total de registro e dividimos pela quantidade de registros que 

queremos mostrar e usamos a função ceil para arredondar o resultado
$totalPagina = ceil($numTotal/$quantidade);

/********************************************************/

//exibindo a paginação
// Verificamos se o total de paginas é maior que 1, se for vamos mostrar a paginação
if ($totalPagina > 1) {
// Criando o link para a página 1
echo "<a href="?pagina=1">Primeira Página</a> - ";

// vamos começar um for para percorrer a quantidade de páginas
for($i = 1; $i <= $totalPagina; $i++){
        // verificamos se esta é a página atual, se for tiramos o link
	if($i == $pagina){
		echo $i . " ";
		} else {
                        // se não for colocamos o link
			echo "<a href="?pagina=$i">$i </a>";
			}
	}
// Criando link para a ultima página
echo " - <a href="?pagina=$totalPagina">Última Página</a>";	
// Fim da paginação
} // fim do else

?>