[Resolvido] Paginação + resultado de busca
Bom dia pessoal, estou com um problema que não consigo ver onde está o erro. Sei que ele pode estar na minha frente (e provavelmente está) mas faz 1 dia que vejo esse código e não acho nada.
Vou postar o código e a explicação:
buscaDocs.php
<?php
include "conecta.php";
include "libera.php";
include "funcoes.php";
include "timeout.php";
timeout(); // verifica tempo de sessao se esta expirado!
check(); // Verifica se o usuário está logado
// RESGATA OS VALORES DA BUSCA = FILTRO E A PESQUISA
$TipoFiltro = $_POST["filtro"];
$qBusca = trim($_POST["busca"]);
// ------------------------------
// DEFINE PAGINAÇÃO
// ------------------------------
$numreg = 15; //número máximo de resultado.
if (!isset($pg)) {
$pg = 0;
}
$inicial = $pg * $numreg;
// -----------------------
// querys para filtro.
// -----------------------
if ($TipoFiltro == 1) {
$resultado = mysql_query("SELECT d.id_doc, d.nome_doc, d.sigla_doc, d.caminho_doc, DATE_FORMAT(d.data_doc,'%d/%m/%Y') AS DataDoc, a.nome_area AS NomeArea FROM documentos AS d INNER JOIN areas AS a ON d.area_doc = a.id_area AND d.nome_doc LIKE '%$qBusca%' ORDER BY a.nome_area,d.data_doc,d.nome_doc ASC LIMIT $inicial, $numreg");
$quantreg = mysql_num_rows($resultado);
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Dist. Rio Branco @ INTRANET</title>
<link rel="stylesheet" href="css/estiloGeral.css" type="text/css" />
<link rel="stylesheet" href="css/subPaginas.css" type="text/css" />
</head>
<body>
<div id="wrap">
<div id="topo">
<img src="img/logomarca.gif" /><img src="img/topo.gif" />
</div>
<div id="conteudo">
<div id="divMenu">
<? include "navebar.php" ?>
</div>
<div id="navegacao">
<div id="MenuCD">
<? include "MenuCD.php" ?>
</div>
<div id="conteudo-CD">
<div id="Resultado-Info">
<h1>Resultados de: <span class="qBusca"><? echo '"'. $qBusca; ?>".</span></h1>
</div>
<div id="Resultado-Busca">
<? if ($TipoFiltro == 1) { ?>
<table id="tb-ListaDoc" width="720" border="0" cellpadding="0" cellspacing="0">
<tr class="Titulo-ListaDoc" height="25">
<?
// QUANTIDADE DE RESULTADOS ENCONTRADOS.
if (mysql_num_rows($resultado) == 0) {
echo '<p style="margin-left:50px; color:#006699;">A busca encontrou 0 resultados.</p>';
} else {
if (mysql_num_rows($resultado) == 1) {
echo '<p style="margin-left:50px; color:#006699;">A busca encontrou '.mysql_num_rows($resultado).' resultado.</p>'; } else {
echo '<p style="margin-left:50px; color:#006699;">A busca encontrou '.mysql_num_rows($resultado).' resultados.</p>';
}
}
// VERIFICO SE É ADMIN PARA ADICIONAR UMA COLUNA PRA EXCLUSAO DE ARQUIVO.
if ($_SESSION["IDdocara"] == "A") {
echo '<td></td>';
}
?>
<td class="Barra-titulos">SIGLA</td>
<td class="Barra-titulos">NOME DOCUMENTO</td>
<td class="Barra-titulos">ÁREA</td>
<td class="Barra-titulos">DATA INCLUSÃO</td>
<td class="Barra-titulos"></td>
</tr>
<? while($valor = mysql_fetch_array($resultado)) {
if ($bool == 0){
if ($_SESSION["IDdocara"] == "A") {
echo '<tr height="20" align="center">
<td><a href="DelCD.php?Doc='.encrypt_url($valor["id_doc"]).'"><img src="img/close.png" alt="Excluir documento/procedimento" border="0" /></a></td>
<td class=SiglaDoc>'.$valor["sigla_doc"].'</td>
<td class=NomeDoc>'.$valor["nome_doc"].'</td>
<td class=NomeAreaDoc>'.$valor["NomeArea"].'</td>
<td class=DataDoc>'.$valor["DataDoc"].'</td>
<td width="90"><a href="view.php?arquivo='.encrypt_url($valor["id_doc"]).'">Visualizar</a></td>
</tr>';
} else {
echo '<tr height="20" align="center">
<td class=SiglaDoc>'.$valor["sigla_doc"].'</td>
<td class=NomeDoc>'.$valor["nome_doc"].'</td>
<td class=NomeAreaDoc>'.$valor["NomeArea"].'</td>
<td class=DataDoc>'.$valor["DataDoc"].'</td>
<td width="90"><a href="view.php?arquivo='.encrypt_url($valor["id_doc"]).'">Visualizar</a></td>
</tr>';
}
$bool = 1;
} else {
if ($_SESSION["IDdocara"] == "A") {
echo '<tr height="20" class="zebra" align="center">
<td><a href="DelCD.php?Doc='.encrypt_url($valor["id_doc"]).'"><img src="img/close.png" alt="Excluir documento/procedimento" border="0" /></a></td>
<td class=SiglaDoc>'.$valor["sigla_doc"].'</td>
<td class=NomeDoc>'.$valor["nome_doc"].'</td>
<td class=NomeAreaDoc>'.$valor["NomeArea"].'</td>
<td class=DataDoc>'.$valor["DataDoc"].'</td>
<td width="90"><a href="view.php?arquivo='.encrypt_url($valor["id_doc"]).'">Visualizar</a></td>
</tr>';
} else {
echo '<tr height="20" class="zebra" align="center">
<td class=SiglaDoc>'.$valor["sigla_doc"].'</td>
<td class=NomeDoc>'.$valor["nome_doc"].'</td>
<td class=NomeAreaDoc>'.$valor["NomeArea"].'</td>
<td class=DataDoc>'.$valor["DataDoc"].'</td>
<td width="90"><a href="view.php?arquivo='.encrypt_url($valor["id_doc"]).'">Visualizar</a></td>
</tr>';
}
$bool = 0;
}
} ?>
</table>
<?
// Inclui o arquivo que faz a paginacao do resultado.
echo "<br><br>";
echo "<div class=teste>";
include("paginacao.php");
echo "</div>";
}
?>
</div>
</div>
</div>
</div>
</body>
</html>
paginacao.php (Script que peguei aqui no forum)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css"><!--
.pgoff { font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}
a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}
a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}
-->
</style>
</head>
<body>
<?php
$quant_pg = ceil($quantreg/$numreg);
$quant_pg++;
// Verifica se esta na primeira página, se nao estiver ele libera o link para anterior
if ( $pg > 0) {
echo "<a href=".$PHP_SELF."?pg=".($pg-1) ."class=pg><b>« anterior</b></a>";
} else {
echo "<font color=#CCCCCC>« anterior</font>";
}
// Faz aparecer os numeros das página entre o ANTERIOR e PROXIMO
for($i_pg=1;$i_pg<$quant_pg;$i_pg++) {
// Verifica se a página que o navegante esta e retira o link do número para identificar visualmente
if ($pg == ($i_pg-1)) {
echo " <span class=pgoff>[$i_pg]</span> ";
} else {
$i_pg2 = $i_pg-1;
echo " <a href=".$PHP_SELF."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";
}
}
// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima
if (($pg+2) < $quant_pg) {
echo "<a href=".$PHP_SELF."?pg=".($pg+1)." class=pg><b>próximo »</b></a>";
} else {
echo "<font color=#CCCCCC>próximo »</font>";
}
?>
</body>
</html>O problema é o seguinte, este é um exemplo apenas filtrando por nome (TipoFiltro = 1), vamos supor que minha busca direto no banco retorna 24 resultados. Na minha página mostra somente 15, que é o numero máximo que defini na variável $numreg = 15, e não faz a paginação correta.
Eu tenho certeza que o código está horrível, mas como um funcionário que precisa fazer algo pra terminar ontem foi assim que fiz.
Se não ficou claro o problema posso tentar explicar melhor, a questao é que ele nunca mostra o resultado maior que 15, sendo que direto no banco me retorna o resultado correto.
Discussão (2)
Carregando comentários...