[Script] Video aula Paginação de Resultados com PHP

Seção para postar os scripts das video aulas, e dos membros do forum

[Script] Video aula Paginação de Resultados com PHP

Mensagempor davidchc » Seg Jan 25, 2010 2:44 pm

SQL dos produtos

Código: Selecionar tudo
-- phpMyAdmin SQL Dump
-- version 2.10.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tempo de Geração: Jan 25, 2010 as 03:43 PM
-- Versão do Servidor: 5.0.45
-- Versão do PHP: 5.2.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Banco de Dados: `videoaulasbrasil`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `produtos`
--

CREATE TABLE `produtos` (
  `id` int(11) NOT NULL auto_increment,
  `produto` varchar(80) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;

--
-- Extraindo dados da tabela `produtos`
--

INSERT INTO `produtos` (`id`, `produto`) VALUES
(1, 'Curso de Photoshop CS4'),
(2, 'Flash CS4'),
(3, 'Dreamweaver CS4 avançado com PHP e Mysql'),
(4, 'Wordpress volume 2 - Desenvolvendo portais'),
(5, 'PHP e Mysql com Dreamweaver'),
(6, 'DVD Desenvolvendo um site dinâmico com Wordpress'),
(7, 'DVD Desenvolvendo sites nos padrões web com Tableless'),
(8, 'DVD Criando um site completo volume 2'),
(9, 'Sony Vegas 8 PRO - Multimídia para web'),
(10, 'Curso de PHP Orientada a Objeto'),
(11, 'Curso de Jquery'),
(12, 'Curso sobre Python'),
(13, 'Curso sobre Java'),
(14, 'Curso sobre Ruby'),
(15, 'Curso sobre Mysql'),
(16, 'Curso sobre UML'),
(17, 'Curso sobre Padrões de Projeto'),
(18, 'Curso - Criando loja Virtual com PHP'),
(19, 'Curso sobre Delphi'),
(20, 'Curso sobre C#'),
(21, 'Curso sobre Zend Framework'),
(22, 'Curso sobre CakePHP'),
(23, 'Curso sobre Asp.net'),
(24, 'Curso sobre Empreendedorismo'),
(25, 'Curso sobre criando um Blog'),
(26, 'Curso como criar um CMS'),
(27, 'Curso sobre Desenvolvimento Agil'),
(28, 'Curso sobre Padrões Web'),
(29, 'Curso sobre Aplicativos para IPhone'),
(30, 'Curso sobre criar um sistema de Imobiliaria');



config.php Mude o nome para seu banco de dados

Código: Selecionar tudo
<?php
       mysql_connect('localhost', 'root', '') or die(mysql_error());
       mysql_select_db('videoaulasbrasil') or die(mysql_error());
?>


index.php

Código: Selecionar tudo
<?php
//inclusão da conexão com banco de dados
  require('config.php');
  //A quantidade de valor a ser exibida
  $quantidade = 10;
  //a pagina atual
  $pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
  //Calcula a pagina de qual valor será exibido
  $inicio     = ($quantidade * $pagina) - $quantidade;
   
  //Monta o SQL com LIMIT para exibição dos dados 
  $sql = "SELECT * FROM produtos ORDER BY produto ASC LIMIT $inicio, $quantidade";
  //Executa o SQL
  $qr  = mysql_query($sql) or die(mysql_error());
  //Percorre os campos da tabela
  while($ln = mysql_fetch_assoc($qr)){
    echo 'Produto :'.$ln['produto'].'<br /> <hr />';
  }
  /**
   * SEGUNDA PARTE DA PAGINAÇÃO
   */
  //SQL para saber o total
  $sqlTotal   = "SELECT id FROM produtos";
  //Executa o SQL
  $qrTotal    = mysql_query($sqlTotal) or die(mysql_error());
  //Total de Registro na tabela
  $numTotal   = mysql_num_rows($qrTotal);
  //O calculo do Total de página ser exibido
  $totalPagina= ceil($numTotal/$quantidade);
   //link para primeira página
   echo '<a href="?pagina=1">Primeira Página</a> - ';
   //loop para mostra a os links da paginação
   for($i = 1; $i <= $totalPagina; $i++){
       if($i == $pagina)
    echo $i;
      else
    echo " <a href=\"?pagina=$i\">$i</a> ";
   }
   //link para ultima página
   echo " - <a href=\"?pagina=$totalPagina\">Última Página</a>";
 
?>


Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video aula Paginação de Resultados com PHP

Mensagempor davidchc » Seg Jan 25, 2010 7:14 pm

Aqui fiz algumas modificações na paginação, mostrando no máximo 3 resultados para direita e para esquerda contando o com o link atual.

Código: Selecionar tudo
<?php
<?php
//inclusão da conexão com banco de dados
  require('config.php');
  //A quantidade de valor a ser exibida
  $quantidade = 2;
  //a pagina atual
  $pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
  //Calcula a pagina de qual valor será exibido
  $inicio     = ($quantidade * $pagina) - $quantidade;
   
  //Monta o SQL com LIMIT para exibição dos dados 
  $sql = "SELECT * FROM produtos ORDER BY produto ASC LIMIT $inicio, $quantidade";
  //Executa o SQL
  $qr  = mysql_query($sql) or die(mysql_error());
  //Percorre os campos da tabela
  while($ln = mysql_fetch_assoc($qr)){
    echo 'Produto :'.$ln['produto'].'<br /> <hr />';
  }
  /**
   * SEGUNDA PARTE DA PAGINAÇÃO
   */
  //SQL para saber o total
  $sqlTotal   = "SELECT id FROM produtos";
  //Executa o SQL
  $qrTotal    = mysql_query($sqlTotal) or die(mysql_error());
  //Total de Registro na tabela
  $numTotal   = mysql_num_rows($qrTotal);
  //O calculo do Total de página ser exibido
  $totalPagina= ceil($numTotal/$quantidade);
   /**
    * Defini o valor máximo a ser exibida na página tanto para direita quando para esquerda
    */
   $exibir = 3;
   /**
    * Aqui montará o link que voltará uma pagina
    * Caso o valor seja zero, por padrão ficará o valor 1
    */
   $anterior  = (($pagina - 1) == 0) ? 1 : $pagina - 1;
   /**
    * Aqui montará o link que ir para proxima pagina
    * Caso pagina +1 for maior ou igual ao total, ele terá o valor do total
    * caso contrario, ele pegar o valor da página + 1
    */
   $posterior = (($pagina+1) >= $totalPagina) ? $totalPagina : $pagina+1;
   /**
    * Agora monta o Link paar Primeira Página
    * Depois O link para voltar uma página
    */
   echo '<a href="?pagina=1">Primeira Página</a> | ';
   echo "<a href=\"?pagina=$anterior\">Página Anterior</a> | ";
   
   /**
    * O loop para exibir os valores à esquerda
    */
   for($i = $pagina-$exibir; $i <= $pagina-1; $i++){
       if($i > 0)
        echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
  }
   /**
    * Depois o link da página atual
    */
   echo '<a href="?pagina='.$pagina.'"><strong>['.$pagina.']</strong></a>';
   /**
    * O loop para exibir os valores à direta
    */
   
   for($i = $pagina+1; $i < $pagina+$exibir; $i++){
       if($i <= $totalPagina)
        echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
  }
  /**
    * Agora monta o Link para Próxima Página
    * Depois O link para Última Página
    */
  echo " | <a href=\"?pagina=$$posteriorr\">Próxima Página</a> | ";
  echo "  <a href=\"?pagina=$totalPagina\">Última Página</a>";

?>


http://pastebin.com/f7abb223b
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm


Retornar para Banco de Scripts (PHP)

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes