Olá a todos.
Venho buscando em fóruns e sites alguma forma de soluciona meu problema que, deve ser simples e facil, porem como estou iniciando ainda em php estou com dificuldades.
Já desenvolvi formularios de busca, normal, funcionam. Também já fiz paginação de itens quando puxo do banco, funciona perfeitamente.
Porém, eu estava com uma busca de um banco (utilizo mysql) com muitos dados, aparecendo mais de 200, e eu estava paginando, mostrando 10 por pagina. Quando eu listo todos, ele pagina certinho. Na hora que incluo a opção de fazer uma busca/filtro, a primeira pagina com os 10 estão corretos, ao ir para a segunda eu 'perco' a busca. Na url some a minha busca que estava enviando e eu não consigo arruma o get, deixa que continue nas paginas 2,3,4... aparecendo apenas o que quero buscar.
Eis o código:
(não colocarei o html completo pois é MUITO grande, colocarei o formulario e os codigos php q realizam a busca e paginação, q são os principais)
Formulario:
<table width="30%" border="0" cellpadding="5" cellspacing="0" >
<tr> </tr>
<form name='busca' id='busca' method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?a=buscar">
<tr>
<td width="104"><strong>Nome</strong></td>
<td><input type='text' name='nome_solicitante' id='nome_solicitante' value=' ' /></td>
</tr>
<tr> </tr>
<tr>
<td width="104"><strong>Nº Protocolo</strong></td>
<td><input type='text' name='id_protocolo' id='id_protocolo' value=' ' /></td>
</tr>
<tr> </tr>
<td><strong><input type='submit' name='buscar' id='buscar' value='Buscar' /></strong></td>
</form>
</table><br/><br/>
O código php de busca:
<?php
// Recuperamos a ação enviada pelo formulário
$a = $_GET['a'];
// Verificamos se a ação é de busca
if ($a == "buscar") {
// Pegamos a palavra do html
$nome_solicitante = trim($_POST['nome_solicitante']);
$id_protocolo = trim($_POST['id_protocolo']);
$maxRows_rs_ListaSetor = 10;
$pageNum_rs_ListaSetor = 0;
if (isset($_GET['pageNum_rs_ListaSetor'])) {
$pageNum_rs_ListaSetor = $_GET['pageNum_rs_ListaSetor'];
}
$startRow_rs_ListaSetor = $pageNum_rs_ListaSetor * $maxRows_rs_ListaSetor;
if (($data_dia) != '') {
mysql_select_db($database_conn_ouvidoria, $conn_ouvidoria);
$query_rs_ListaSetor = "SELECT * FROM protocolo INNER JOIN clientela ON protocolo.id_clientela = clientela.id_clientela INNER JOIN manifestacao ON protocolo.id_manifestacao = manifestacao.id_manifestacao INNER JOIN assunto ON protocolo.id_assunto = assunto.id_assunto INNER JOIN status ON protocolo.status = status.id_status INNER JOIN setor ON protocolo.id_setor = setor.id_setor WHERE protocolo.nome_solicitante LIKE '%".$nome_solicitante."%' AND protocolo.id_protocolo LIKE '%".$id_protocolo."%' ORDER BY protocolo.id_protocolo";
$query_limit_rs_ListaSetor = sprintf("%s LIMIT %d, %d", $query_rs_ListaSetor, $startRow_rs_ListaSetor, $maxRows_rs_ListaSetor);
$rs_ListaSetor = mysql_query($query_limit_rs_ListaSetor, $conn_ouvidoria) or die(mysql_error());
$row_rs_ListaSetor = mysql_fetch_assoc($rs_ListaSetor);
if (isset($_GET['totalRows_rs_ListaSetor'])) {
$totalRows_rs_ListaSetor = $_GET['totalRows_rs_ListaSetor'];
} else {
$all_rs_ListaSetor = mysql_query($query_rs_ListaSetor);
$totalRows_rs_ListaSetor = mysql_num_rows($all_rs_ListaSetor);
}
$totalPages_rs_ListaSetor = ceil($totalRows_rs_ListaSetor/$maxRows_rs_ListaSetor)-1;
$queryString_rs_ListaSetor = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_rs_ListaSetor") == false &&
stristr($param, "totalRows_rs_ListaSetor") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_rs_ListaSetor = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_rs_ListaSetor = sprintf("&totalRows_rs_ListaSetor=%d%s", $totalRows_rs_ListaSetor, $queryString_rs_ListaSetor);
$_SESSION["busca"] = $_POST["busca"];
if ($totalRows_rs_ListaSetor > 0){
echo '<br/><br/><br/>';
?>
<table width="100%" border="1" cellpadding="0" cellspacing="0" bgcolor="#D7DEE8">
<tr bgcolor="#D7DEE8" class="corpo">
<td><strong> </strong></td>
<td><strong>Nº Protocolo </strong></td>
<td><strong>Nome </strong></td>
</tr>
<?php do { ?>
<tr class="corpo">
<td><br/><?php echo $row_rs_ListaSetor['id_protocolo']; ?></td>
<td><br/><?php echo $row_rs_ListaSetor['nome_solicitante']; ?></td>
</tr>
<?php } while ($row_rs_ListaSetor = mysql_fetch_assoc($rs_ListaSetor)); ?>
<?php } // Show if recordset not empty ?>
/////PAGINACAO/////
</table>
<p>
<table border="0" width="50%" align="center">
<tr>
<td width="15%" align="center"><?php if ($pageNum_rs_ListaSetor > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_rs_ListaSetor=%d%s", $currentPage, 0, $queryString_rs_ListaSetor); ?>">Primeiro</a>
<?php } // Show if not first page ?>
</td>
<td width="15%" align="center"><?php if ($pageNum_rs_ListaSetor > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_rs_ListaSetor=%d%s", $currentPage, max(0, $pageNum_rs_ListaSetor - 1), $queryString_rs_ListaSetor); ?>">Anterior</a>
<?php } // Show if not first page ?>
</td>
<td width="15%" align="center"><?php if ($pageNum_rs_ListaSetor < $totalPages_rs_ListaSetor) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_rs_ListaSetor=%d%s", $currentPage, min($totalPages_rs_ListaSetor, $pageNum_rs_ListaSetor + 1), $queryString_rs_ListaSetor); ?>">Próximo</a>
<?php } // Show if not last page ?>
</td>
<td width="15%" align="center"><?php if ($pageNum_rs_ListaSetor < $totalPages_rs_ListaSetor) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_rs_ListaSetor=%d%s", $currentPage, $totalPages_rs_ListaSetor, $queryString_rs_ListaSetor); ?>">Último</a>
<?php } // Show if not last page ?>
</table>
<?php
}
?>
////////////////////////////////////////////////////////////////////////////////////////////////
Posso ter esquecido talvez de fechar algum table, tr, td.. mas é pq eu reduzi MUITO o codigo, pq o filtro é bem maior, desculpem o ramanho, tentei passa a idéia.
Eu passo por get a busca, e quando vai para a página 2 eu perco a busca ><
Obrigada quem puder ajudar e desculpem o tamanho do post, mas estou faz quase 2 semanas nisso e acho q é bobeirinha minha =/
Publicidade
|
|
Page 1 of 1
Duvida qnt busca + paginação
Share this topic:
Page 1 of 1
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Uma dúvida! Me ajudem pls?
|
Flash & ActionScript |
kirax
|
|
|
|
Executando videos externamente em flash
Dúvida sobre execução de video em flash |
Flash & ActionScript |
TV Gororoba
|
|
|
|
Dúvida exportando site!
Erra quando tento exportar... |
Fireworks |
Menor
|
|
|
|
Microsoft anuncia site experimental de buscas aberto ao público
|
Notícias |
Notícias
|
|
|
|
[Duvida] Join de várias tabelas relacionadas
|
Projeto :: Lumine |
Marcony
|
|
|
|
duvida em qual linguagem escolher pra estudar
|
Flash & ActionScript |
Dark Neo
|
|
|
|
URGENTE
sistema de busca |
ASP |
silvia_cowgirl_tiliaque
|
|
|
|
NFS Most Wanted
duvida BURGER KING |
Jogos |
ale_poa
|
|
Publicidade
|
|

Help













