I created a .php code that queries the database and returns the results by printing them on the screen, it also prints a page, I would like to print this page inside a footer tag but without having to redo the queries by the number of results in the bank, limit and yes reuse of the part that prints the results on the screen.
.PHP code
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Exibe produtos</title>
</head>
<body>
<div id="produtos">
<p>
Produtos com esta consulta
</p>
<?php
include_once "QueryInDB.php";
include_once "CountInDB.php";
include_once "Consulta.class.php";
imprime();
function imprime(){
//Cria uma consulta com os parametros passados pela URL
$consulta = new Consulta();
$consulta->resultType = $_GET['resultType'];
$consulta->search = $_GET['search'];
//verifica a página atual caso seja informada na URL, senão atribui como 1ª página
$pagina = (isset($_GET['p']))? $_GET['p'] : 1;
//seta a quantidade de itens por página, neste caso, 2 itens
$consulta->registros = 2;
//conta o total de itens
$total = CountInDB::search($consulta);
//calcula o número de páginas arredondando o resultado para cima
$numPaginas = ceil($total/$consulta->registros);
//variavel para calcular o início da visualização com base na página atual
$consulta->inicio = ($consulta->registros*$pagina)-$consulta->registros;
//Realiza e armazena a consulta
$produtos = queryInDB::search($consulta);
foreach($produtos as $produto){
echo $produto['id']." - ";
echo $produto['nome']." - ";
echo $produto['descricao']." - ";
echo "R$ ".$produto['valor']."<br />";
}
//Cria uma string para passagem de parametros pela URL
$query = http_build_query($consulta);
//Exibe a paginação
if($pagina > 1){
echo "<a href='exibir.php?{$query}&p=".($pagina - 1)."' class='controle'>« anterior</a>".' ';
}
for($i = 1; $i < $numPaginas + 1; $i++){
$ativo = ($i == $pagina) ? 'numativo' : '';
echo "<a href='exibir.php?{$query}&p=".$i."' class='numero ".$ativo."'> ".$i." </a>".' ';
}
if($pagina < $numPaginas){
echo "<a href='exibir.php?{$query}&p=".($pagina + 1)."' class='controle'>proximo »</a>".' ';
}
}
?>
</div>
<footer id="pagincao">
<!-- PAGINAÇÃO DEVE FICAR -->
<p>
Fim dos Produtos
</p>
</footer>
</body>