Paginação de Conteúdo com PHP e MySQL

Paginação de Conteúdo com PHP e MySQL

09/05/2011 | POR Juliano Amaral | 28 Comentários | 16.334 VISITAS

Saudações amigos da UPINSIDE, esta é a minha primeira vídeo aula para o portal e nesta estarei ensinando como paginar conteúdos com o PHP através de dados vindos do banco de dados MySQL, onde a proposta apresentada servira para a organização do conteúdo de seus projetos.

SCRIPT DA AULA:

<?php
 mysql_connect('localhost', 'root', '');
 mysql_select_db('videoaulas');

 $rowConsulta = mysql_query("SELECT * FROM comentario");
 $contaNumRegistros = mysql_num_rows($rowConsulta);
 $paginacao = $contaNumRegistros / 10;
 $paginacaoConvertida = (int) $paginacao;

 if(isset($_GET['pag'])){
 $indice = ($_GET['pag'] - 1) * 10;
 $rowLimitConsulta = mysql_query("SELECT * FROM comentario ORDER BY comentario_id DESC LIMIT $indice, 10");
 }else{
 $rowLimitConsulta = mysql_query("SELECT * FROM comentario ORDER BY comentario_id DESC LIMIT 0, 10");
 }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Sistema de Paginação de Conteudo</title>
 <link rel="stylesheet" type="text/css" href="css/style.css" />
 </head>
 <body>
 <div id="box">
 <div id="exemplo">
 </div>
 <span>
 <a name="comentarios">
 </a>
 <?php
 for($i=1; $i<=10; $i++){
 if(isset($_GET['pag'])){
 if($i == $_GET['pag']){
 echo " $i ";
 }else{
 echo '<a href="?pag='.$i.'#comentarios"> '.$i.' </a>';
 }
 }else{
 echo '<a href="?pag='.$i.'#comentarios"> '.$i.' </a>';
 }
 }
 ?>
 </span>
 <?php
 while($rowComentario = mysql_fetch_row($rowLimitConsulta)){
 ?>
 <div>
 <span><?php echo $rowComentario[1]; ?></span>
 <span><?php echo $rowComentario[2]; ?></span>
 </div>
 <?php     } ?>
 </div>
 </body>
</html>

28 respostas para “Paginação de Conteúdo com PHP e MySQL” deixe a sua!
  • Víctor Hugo Mendonça Meloque – Dk3 Em: 9 de maio de 2011 as 16:02

    Ótima VA cara, me ajudou muito não só com essa VA.

  • Sandro Em: 9 de maio de 2011 as 16:04

    Excelente aula,
    Fiquei apenas em duvida na situação onde a quantidade de conteudo seja muito grande e seja necessario utilizar os pontinhos para visualização, exemplo:
    1 2 3 4 5 …..301 302 ultima
    Teria como explicar como tratar esta situação

  • Samuel Em: 10 de maio de 2011 as 1:23

    ESTOU TENDO PROBLEMA COM HOSPEDAGEM LOCAWEB POIS O MESMO SISTEMA DE NEWSLETTER AQUI ENSINADO UTILIZEI NA HOSPEDAGEM RAVEHOST E DEU CERTO MAS NA LOCAWEB ESTÁ DANDO ERROS COMO CADASTRA O E-MAIL NO BANCO DE DADOS MAS NÃO ENVIA A MENSAGEM PARA CONFIRMAÇÃO E AI PENSEI QUE SÓ ERA ESTE ERRO FUI NO BANCO DE DADOS E MUDEI O STATUS PARA ATIVO E TENTEI ENVIAR UMA NEWSLETER JÁ QUE MUDEI PARA ATIVO OS E-MAILS CADASTRADOS E NÃO FOI ENVIADO NADA MAS SURGIU AQUELA MENSAGEM DE CONFIRMAÇÃO COM SUCESSO NO ENVIO DOS E-MAILS CADASTRADOS MAS NA CAIXA DE MENSAGENS CADASTRADOS NÃO CHEGA MENSAGEM NENHUMA. O QUE ESTÁ ERRADO COM A LOCAWEB VOCÊ PODE DIZER?

  • James H. Becker Em: 10 de maio de 2011 as 8:43

    Prezado,

    Acho que fiz tudo corretamente como mostra na VA, poré, uma dúvida, quando o BD possui somente um comentario, ele continua mostrado os “10″ indices da paginação, ele não incrementa conforme forem sendo postados os comentários.

    Não sei se fiz algo errado mas acho que não.

    Se tiver a correção posta ai.

    Grande Abraço

  • Lucivan Em: 10 de maio de 2011 as 9:21

    PARABÉNS, MUITO BOA SUA DIDÁTICA, OBRIGADO POR COMPARTILHA SEUS CONHECIMENTO.

  • Robson V. Leite Em: 10 de maio de 2011 as 9:35

    @Samuel: provavelmente eles só aceitem e-mails autenticados, tem aula sobre na UP!

  • EuNaoTenhoNome Em: 10 de maio de 2011 as 10:54

    UpInside;

    1º Quero Parabenizar a Upinside e 2º A força de vontade que você JULIANO AMARAL tem assim como os demais autores das outras video aulas aqui ja postadas.

    A aula é ótima você explica bem e sabe como o negocio funciona mesmo.

    Valeu !!!!!!!!!!!!!!!!!!!!!!!!

  • Allexandre Em: 10 de maio de 2011 as 15:09

    Parabéns pela video aula Juliano, de alto nivel ! Agora tenho só uma dúvida que exatamente igual a do JAMES H. BECKER que deixou um comentário no dia 10 DE MAIO a respeito dos indices da paginação, ele não incrementa conforme forem sendo postados os comentários.

    Desde já agradeço ! Um abraço !

  • Samuel Em: 10 de maio de 2011 as 15:20

    onde encontro esta aula pode mandar o link para o meu e-mail?

  • Leonardo Em: 11 de maio de 2011 as 21:11

    muito boa video aula, mas como o Sandro ja bem disse ficou faltando explicar como que limita o numero de links.. como existe em muitos sites… 1 2 3 4 5 … 10. valeu!

  • Matheus Maciel Em: 13 de maio de 2011 as 2:48

    Otima video aula, ate deu uma ajudada no meu css D;

  • Douglas Faria Em: 16 de maio de 2011 as 8:11

    @Samuel:
    Olá Samuel… cheque as configurações de email lá na wiki da lokaweb…pois quando não se especifica o Return-Path.

    DA UMA OLHADA AKI:

    http://wiki.locaweb.com.br/pt-br/Como_enviar_e-mails_com_a_fun%C3%A7%C3%A3o_mail%28%29_do_PHP

    lá eles explicam isso…tive o mesmo problema…rs
    abraços

  • Arnald jhosepy Em: 18 de maio de 2011 as 20:52

    Ola adorei a video aula mas poderia mim imformar como faço para que meu codigo em php ou outra linguemgem fique colorido no meu site, com numeração e cores, desde já agradeço.

  • Leandro Freitas Em: 21 de maio de 2011 as 16:14

    Muito boa a vídeo-aula…aprendi bastante!
    Mais, existe paginação sem ser de páginas?O próprio nome já diz: PAGINAÇÂO
    Ficou meio estranho!

    Parabéns continuem assim, que vocês vão longe!!

  • Robson V. Leite Em: 23 de maio de 2011 as 10:32

    @Leandro Freitas: Olá meu querido, na verdade sim, paginação de imagens, artigos, arquivos, categorias, tags, e porai vai!

  • Robson Rafael David Em: 1 de junho de 2011 as 22:44

    Muito boa a vídeo aula. Parabéns! Esperando as outras…

  • Rafael Em: 11 de junho de 2011 as 13:44

    Vocês poderiam nos ajudar a criar um sistema de cadastro de texto com imagem igual a dos contuúdos de vcs. Onde eu pudesse ter uma imagem e logo ao lado o texto, isso fazendo um cadastro e ele aparecendoo lá. Vlw

  • Adilson Rumão Em: 28 de junho de 2011 as 14:32

    Boa tarde, assim como eles:
    Sandro Falou Em: 9 de maio de 2011 as 16:04
    James H. Becker Falou Em: 10 de maio de 2011 as 8:43
    Allexandre Falou Em: 10 de maio de 2011 as 15:09

    Gostaria de deixar como este exemplo:
    1 2 3 4 5 …..301 302 ultima

    Al´guém tem umas dicas?

  • Pablo -W- Em: 10 de agosto de 2011 as 17:29

    Boa tarde, assim como eles:
    Sandro Falou Em: 9 de maio de 2011 as 16:04
    James H. Becker Falou Em: 10 de maio de 2011 as 8:43
    Allexandre Falou Em: 10 de maio de 2011 as 15:09
    Adilson Rumão : 28 de junho de 2011 as 14:32

    Gostaria de deixar como este exemplo:
    1 2 3 4 5 …..301 302 ultima

    Qual solução ?

  • Adilson Rumão Em: 31 de agosto de 2011 as 15:31

    E aí galera, alguém conseguiu?

  • Luciano Em: 4 de setembro de 2011 as 17:45

    JULIANO AMARAL, excelente aula, como você linkaria os comentários 1, 2,3…, no banco de dados, ou seja, ao clicar no comentário n 05, como linkar essa pagina se o comentáio fosse grande.

  • Raphaela Lara Em: 5 de outubro de 2011 as 0:29

    Como o James,

    “uma dúvida, quando o BD possui somente um comentario, ele continua mostrado os “10″ indices da paginação, ele não incrementa conforme forem sendo postados os comentários.

    Não sei se fiz algo errado mas acho que não.

    Se tiver a correção posta ai. ”

    obrigado!

    rah

  • Anderson Reis Em: 27 de fevereiro de 2012 as 14:36

    Ola caros amigos da comunidade UP, obrigado pelo grande trabalho que vocês realizam, venho informar que essa VA não está disponível esta dando vídeo não encontrado. muito obrigado.

  • Robson V. Leite Em: 27 de fevereiro de 2012 as 17:12

    Olá Anderson Obrigado pelo aviso, vamos resolver em breve!

  • gerdson Em: 2 de março de 2012 as 17:13

    cader a video aula?

  • vinicius Em: 6 de abril de 2012 as 10:47

    esta parte está errada

    for($i=1; $i<=10; $i++){

    com esse limite de 10 serão sempre 10 páginas, ficando artigos antigos para trás sem a contagem exata de páginas

    não seria assim?

    for($i=1; $i<=$paginacaoConvertida; $i++){

  • Gabriel Coelho Em: 17 de maio de 2012 as 13:06

    A aula está off Robson, tens como colocá-la online novamente?
    Muito obrigado

  • igor Em: 8 de janeiro de 2013 as 14:58

    Cara todas as suas video aulas estão demais mesmo, pena essa aula esta off, esta precisando mesmo…

Deixe seu comentário!