1
I created a code. php that queries the bank and returns the results by printing them on the screen, also prints a pagination, would like to print this page inside a footer tag but without having to redo the queries by amount of results in the bank, limit but reuse the part that prints the results on the screen.
Code . PHP
<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>
,@Kaduamaral, your solution works perfectly, but could show what other possible solutions?
– Ricardo
I posted @Ricardohenrique
– KaduAmaral
Interestingly, I’ve involved both. php codes in functions but this way it didn’t work.
– Ricardo
Do not use @Ricardohenrique functions, leave the code "free" rsrs. It is because the second part of the code is using variables of the first part, if you put in functions these variables are local, within the function, and one cannot use the other.
– KaduAmaral