I have a small problem, I created a large page in html (but it contains several html pages) as if it were a pdf, however I need to number and count them, how can I do this in php? examples: 1 of 40
I have a small problem, I created a large page in html (but it contains several html pages) as if it were a pdf, however I need to number and count them, how can I do this in php? examples: 1 of 40
Following example of a paging code, all lines are commented out.
<?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 similar question to your which contains the answer above.
If that's not enough, try visiting this page . There is a complete tutorial on paging in PHP.
Here is an example of pagination involving a search in the database:
<?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'>« 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 »</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 Pagination