Count html pages with php

Asked

Viewed 694 times

1

I have a small problem, I created a large html page (but it contains several html pages)as if it were a pdf, however I need to number them and count them, how can I do this in php? examples: 1 of 40

  • You want to count . html files, or you want to create a pagination system?

  • @Guilhermenascimento I talked to the author on chat and for what I told her she intends to make a pagination system (I think it is possible to see the conversation even though it is a couple of days old).

  • @Ricardohenrique The problem is that if the question has one or more senses, or none feeling the step (in my opinion) to follow is to suspend, to avoid attempts to answer something that is not clear. In this case it may be it’s not clear what you’re asking or too broad. Of course, the chat can help understand the doubt, but the ideal is that at the end at least the question has some sense with the answers and that it was "locked" (suspended) while not "enhanced".

2 answers

2

Following is an example of a code for pagination, all lines are commented.

<?php
    //inclusão da conexão com banco de dados
    require('config/conectaBd.php');
    //A quantidade de valor a ser exibida
    $quantidade = 3;
    //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 novidades ORDER BY  data DESC 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)){?>

                <div id="noticias">
                <div style="border-bottom:1px dotted #CCC; width:700px; padding:15px; margin-left:-65px;">
            <!--echo '<div style="color:#999; font-size:10px; width:auto; margin-top:2px; margin-bottom:-3px;">'.formata_data($data).'</div>';-->

                <div id="titulo">
        <?php echo $ln['titulo'];?>
                </div>
        <img src="fotos/<?php echo $ln['foto'];?> " style="width:250px; float:left; margin-right:25px; margin-bottom:15px; padding:10px; border:2px solid #D8D8D8;"/>
        <div id="descricao">
        <?php echo $ln['descricao']?></div>
                </div>
                </div>
                </div>
        <?php }?>


        <?php
  /**
   * SEGUNDA PARTE DA PAGINAÇÃO
   */
  //SQL para saber o total
  $sqlTotal   = "SELECT id FROM novidades";
  //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
    */
  /**
    * Agora monta o Link para Próxima Página
    * Depois O link para Última Página
    */
    ?>
    <div id="navegacao">
        <?php
        echo '<a href="?pagina=1">primeira</a> | ';
        echo "<a href=\"?pagina=$anterior\">anterior</a> | ";
    ?>
        <?php
         /**
    * 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>';
  }

  echo '<a href="?pagina='.$pagina.'"><strong>'.$pagina.'</strong></a>';

  for($i = $pagina+1; $i < $pagina+$exibir; $i++){
       if($i <= $totalPagina)
        echo '<a href="?pagina='.$i.'"> '.$i.' </a>';
  }

   /**
    * Depois o link da página atual
    */
   /**
    * O loop para exibir os valores à direita
    */

    ?>
    <?php echo " | <a href=\"?pagina=$posterior\">próxima</a> | ";
    echo "  <a href=\"?pagina=$totalPagina\">última</a>";
    ?>

There is a question similar to yours that contains the above answer.

If that’s not enough, try to visit that page. There is a complete tutorial on how to make PHP pagination.

2

Here is an example of paging that involves a database search:

<?php
    //conexão com o banco de dados
        mysql_connect("localhost","root","");
        mysql_select_db("banco_teste" );

    //verifica a página atual caso seja informada na URL, senão atribui como 1ª página
        $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;

    //seleciona todos os itens da tabela
        $cmd = "select * from produtos";
        $produtos = mysql_query($cmd);

    //conta o total de itens
        $total = mysql_num_rows($produtos);

    //seta a quantidade de itens por página, neste caso, 2 itens
        $registros = 2;

    //calcula o número de páginas arredondando o resultado para cima
        $numPaginas = ceil($total/$registros);

    //variavel para calcular o início da visualização com base na página atual
        $inicio = ($registros*$pagina)-$registros;

    //seleciona os itens por página
        $cmd = "select * from produtos limit $inicio,$registros";
        $produtos = mysql_query($cmd);
        $total = mysql_num_rows($produtos);

    //exibe os produtos selecionados
        while ($produto = mysql_fetch_array($produtos)) {
            echo $produto['id']." - ";
            echo $produto['nome']." - ";
            echo $produto['descricao']." - ";
            echo "R$ ".$produto['valor']."<br />";
        }

    //exibe a paginação
    if($pagina > 1) {
        echo "<a href='index.php?pagina=".($pagina - 1)."' class='controle'>&laquo; anterior</a>";
    }

    for($i = 1; $i < $numPaginas + 1; $i++) {
        $ativo = ($i == $pagina) ? 'numativo' : '';
        echo "<a href='index.php?pagina=".$i."' class='numero ".$ativo."'> ".$i." </a>";
    }

    if($pagina < $numPaginas) {
        echo "<a href='index.php?pagina=".($pagina + 1)."' class='controle'>proximo &raquo;</a>";
    }
?>

Test database to see how pagination works:

CREATE TABLE `produtos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(50) DEFAULT NULL,
  `descricao` text,
  `valor` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

insert  into `produtos`(`id`,`nome`,`descricao`,`valor`) values (1,'Caneta','Caneta azul','3,00');
insert  into `produtos`(`id`,`nome`,`descricao`,`valor`) values (2,'Caderno','Caderno 200 páginas','8,00');
insert  into `produtos`(`id`,`nome`,`descricao`,`valor`) values (3,'Borracha','Borracha para lápis','1,00');
insert  into `produtos`(`id`,`nome`,`descricao`,`valor`) values (4,'Mochila','Mochila escolar preta','35,00');

Source: PHP paging

Browser other questions tagged

You are not signed in. Login or sign up in order to post.