0) // se há resultados, então iniciamos o processo de paginação { $num_por_pagina = 12; // aqui determinamos o número de resultados por página if (!$pagina) //verifica se a variável $pagina, recebeu algum valor no início, se não tiver recebido, atribui 1, tornando essa página a nossa primeira; { $pagina = 1; } if ($pagina == "Primeira") { $pagina = 1; } if ($pagina == "Ultima") { $total_paginas = $total /$num_por_pagina; // cálculo do número de páginas, bem simples o entendimento, é o total de resultados dividido pelo número de registros por página. $total_paginas = ceil($total_paginas); $pagina = $total_paginas; } $primeiro_registro = ($pagina * $num_por_pagina) - "$num_por_pagina"; //esse cálculo permite determinar qual é o primeiro registro de cada página. $i = 0; $consulta = "select * FROM site_noticias WHERE DataPost<='$DataAgora' $FiltraBusca ORDER by DataPost DESC, idNoticias DESC LIMIT $primeiro_registro, $num_por_pagina"; $res = mysql_query($consulta,$db); while ($resultado = mysql_fetch_array($res)) { $idNoticias = "$resultado[idNoticias]"; $DataNoticias = "$resultado[Data]"; $TituloNoticias = "$resultado[Titulo]"; $DataPost = "$resultado[DataPost]"; $Dia = substr($DataPost, 8, 2); $Mes = substr($DataPost, 5, 2); $Ano = substr($DataPost, 0, 4); $Hora = substr($DataPost, 11, 2); $Minuto = substr($DataPost, 14, 2); $Segundo = substr($DataPost, 17, 2); $Data = "$Dia/$Mes/$Ano"; $HoraPost = substr($DataPost, 11, 5); // IMAGEM // if(!empty($resultado["FotoPrincipal"])){ $FotoPrincipal = "images/noticias/$resultado[FotoPrincipal]"; }else{ $FotoPrincipal = "images/sem_img.jpg"; } $TituloNoticia = removeAcentos("$resultado[Titulo]", '-'); $i++; $ExibeNoticias .= "
$resultado[Titulo]
$resultado[Chamada]
$resultado[Titulo]
"; // SE FOR O ÚLTIMO PRODUTO, ZERA A CONTAGEM if ($i == 3){ $i = 0; $ExibeNoticias .= "
"; } } $total_paginas = $total /$num_por_pagina; // cálculo do número de páginas, bem simples o entendimento, é o total de resultados dividido pelo número de registros por página. $total_paginas = ceil($total_paginas); // VALORES PARA AVANÇAR E VOLTAR $ant = $pagina - 1; $prox = $pagina + 1; // SE NÃO ESTIVER NA 1ª PÁGINA ATIVA O VOLTAR if ($pagina > 1) { $ant_link = "««"; } // SE ESTIVER NA PRIMEIRA DEIXA SEM LINK O VOLTAR else { $ant_link = "««"; } // VERIFICA SE TEM + PÁGINAS PARA AVANÇAR if ($total_paginas > $pagina) { $prox_link = "»»"; } // SE NÃO TIVER, DESATIVA O AVANÇAR else { $prox_link = "»»"; } $pags = ceil($total_paginas/$num_por_pagina); // Número máximos de botões de paginação $max_links = 5; // Cria um for() para exibir os 3 links antes da página atual for($x = $pagina-$max_links; $x <= $pagina-1; $x++) { // Se o número da página for menor ou igual a zero, não faz nada // (afinal, não existe página 0, -1, -2..) if($x <=0) { //faz nada // Se estiver tudo OK, cria o link para outra página } else { $MenuEsquerda .= "".$x." "; } } // Exibe a página atual, sem link, apenas o número $PaginaAtual = "".$pagina." "; // Cria outro for(), desta vez para exibir 3 links após a página atual for($x = $pagina+1; $x <= $pagina+$max_links; $x++) { // Verifica se a página atual é maior do que a última página. Se for, não faz nada. if($x > $total_paginas) { //faz nada } // Se tiver tudo Ok gera os links. else { $MenuDireita .= "".$x." "; }} // PAGINA PRIMEIRA E ULTIMA $PrimeiraPagina = "Primeira "; $UltimaPagina = " Última "; // FINALIZADO if($total > $num_por_pagina){ $Paginacao = "$PrimeiraPagina $MenuEsquerda$PaginaAtual$MenuDireita $UltimaPagina"; } $ContagemPagina = "Página $pagina de $total_paginas, mostrando $quantidade registros de um total de $total."; } else{ $ExibeNoticias .= "Nenhuma noticia cadastrada nesta categoria"; } } else{ echo ""; } ?>