Jump to content


Problema Com Paginação


  • Faça o login para participar
2 replies to this topic

#1 Estremoz

Estremoz
  • Visitantes

Posted 22/04/2003, 21:02

Pessoal,

o meu problema é o seguinte, eu criei um formulário de pesquisa e queria que os resultados aparecessem em várias páginas.

Até aqui tudo bem.

O que acontece é que ele devolve os primeiros 30 registos e até aparece próxima página, mas quando eu carrego em proxima página e diz que não existem registo, o que não é verdade.

Eu penso que ele perde as definições da pesquisa quando carrego em proxima página.

Aqui fica o código.

if(!$query){
// Advanced search ...
if(!empty($nome_sel)) $query[] = "nome like'%".$nome_sel."%'";
if(!empty($categoria_sel)) $query[] = "categoria='".$categoria_sel."'";
if(!empty($morada_sel)) $query[] = "morada like'%".$morada_sel."%'";
if(!empty($localidade_sel)) $query[] = "localidade='".$localidade_sel."'";
if(!empty($cp_sel)) $query[] = "cp='".$cp_sel."'";
if(!empty($telefone_sel)) $query[] = "telefone like'%".$telefone_sel."%'";
if(!empty($telemovel_sel)) $query[] = "telemovel like'%".$telemovel_sel."%'";
if(!empty($fax_sel)) $query[] = "fax like'%".$fax_sel."%'";
if(!empty($email_sel)) $query[] = "email like'%".$email_sel."%'";


if(count($query)>0 && is_array($query)) $qry = implode(" AND ", $query);

$lpp = 30;
$sql = sql_query("select id, nome from ".$prefix."_empresas where ".$qry, $dbi);
$res = sql_query($sql,$dbi);
$total = sql_num_rows($sql,$dbi);
$paginas = ceil($total / $lpp);
if(!isset($pagina)) { $pagina = 0;}
$inicio = $pagina * $lpp;
$limit = "LIMIT $inicio,$lpp";

if($qry) $result = sql_query("select id, nome from ".$prefix."_empresas where ".$qry.$limit, $dbi);
$sql = sql_query("select id, nome from ".$prefix."_empresas where ".$qry.$limit, $dbi);
$res = sql_query($sql,$dbi);
OpenTable();
echo "<center><font class=\"title\"><b>"._EMPRESASTITLE."</b></font>";
CloseTable();
echo "<br>";
OpenTable();
echo "<center><b>"._EMPRESASRESULTADOSPESQUISA." </b></center><br><br><br>";

if (!$qry || sql_num_rows($result, $dbi) == 0) {
echo _EMPRESASNAORESULTADOS."<br>";
} else {
echo "<table align=\"center\" width=\"100%\" border=\"0\" cellspacing=\"4\" cellpadding=\"2\"><tr>";
while(list($id, $nome) = sql_fetch_row($result, $dbi)) {
$i = 0;
if ($count == 1) {
echo "<tr>\n";
$count = 0;
}
echo "<td width=\"100%\" valign=\"top\">";
echo "<table width=\"100%\" cellspacing=\"2\" cellpadding=\"2\" border=\"0\" bgcolor=\"$bgcolor3\">";
echo "<TR><TD width=\"10\"><img src=\"modules/$module_name/images/bullet.gif\" width=\"15\" height=\"10\" alt=\"\"></td>";
echo "<TD bgcolor=\"$bgcolor2\">";
echo "<a href=# ONCLICK=window.open('modules.php?name=Empresas&file=ViewEmpresa&id=$id','empresa','width=400,height=600,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,target=blank,class=bluelink')><b>$nome";

echo "</b></a>";
echo "</td></tr>";

$count++;
if ($count == 1) {
echo "</tr>\n";
}
if ($count == 1) {
echo "</table>\n";
} else {
echo "</td></tr></tr></table>\n";
}
}
echo "</table>";

}
echo "<br><center><b>";
if ($pagina > 0) {
$menos = $pagina - 1;
$url = "modules.php?name=Empresas&file=search&adv=1&pagina=$menos";
echo " <a href='$url'>Página Anterior</a>";

}

if ($pagina < ($paginas - 1)) {
$mais = $pagina + 1;
$url = "modules.php?name=Empresas&file=search&adv=1&pagina=$mais";
echo " | <a href='$url'>Proxima Página</a>";

}
echo "</center></b>";

...

Alguém pode dar uma ajuda? Ficaria muito agradecido.

#2 CheTy

CheTy
  • Visitantes

Posted 22/04/2003, 21:23

:ok: Podem ser úteis a você cara...

Tutorial - by Renan_Gonçalves

Tutorial - by Maximus

#3 Xmagnum

Xmagnum

    Turista

  • Usuários
  • 42 posts
  • Sexo:Não informado
  • Localidade:Fortaleza CE
  • Interesses:Programação PHP, jogos de PC ...

Posted 22/04/2003, 22:40

Cara, esse codigo ai ta mt parecido com o search do php nuke, se for, pode ser um Bug que vc pegou, tentatrocar de verção.
(Desculpem, acho que minha resposta ñ coresponde bem ao topico)
Equipe Firemasters
Programador PHP




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq