busca com paginação

Enviada por Glauco 
Glauco
busca com paginação
06 de April de 2003 às 05:26PM
Dae Pessoal.
Fiz uma pagina em php que executa uma busca de imóveis de acordo com os parâmetros passados pelos cliente.
Acontece que na escolha dos parametros da busca eu fiz um list/menu com o nome de municipio, que ao ter um item selecionado repassa este para a própria página que executa um filtro em outro list/menu chamado de bairro. Este lista os bairros de acordo com o municipio escolhido.
Até ai tudo bem porque esta situação está funcionando, o problema é que ao selecionar um municipio no list/menu, além de ele executar o filtro para o list/menu bairro, este também executa a busca dos imóveis que só deveria ser executada quando o cliente clicasse no botão buscar.

O mesmo acontece com o sitema de paginação desta página. Após executado uma busca na página, quando se vai navegar entre os resultados, esta busca se desfaz.

será que alguem poderia me mostrar como eu resolvo isto. é muito importante.
Agrado uma resposta e obrigado

Glauco Cardozo

<?
$conexao = mysql_connect("localhost","root");

if (!isset($municipio))
{
$municipio = 0;
}
if (!isset($bairro))
{
$bairro = 0;
}
if (!isset($comprar))
{
$comprar = 0;
}
if (!isset($alugar))
{
$alugar = 0;
}
if (!isset($imovel))
{
$imovel = 0;
}
if (!isset($quartos))
{
$quartos = 0;
}
if (!isset($suite))
{
$suite = 0;
}
if (!isset($area))
{
$area = 0;
}

$sql1 = "Select * From tbmunicipio, tbbairro Where tbmunicipio.municipio_id = tbbairro.municipio_id and tbbairro.municipio_id = '".$municipio."'";
$tabela1 = mysql_db_query ("baseimovel", "$sql1", $conexao);

$sql2 = "Select * From tbmunicipio";
$tabela2 = mysql_db_query ("baseimovel", "$sql2", $conexao);

$sql3 = "Select * From tbtipo";
$tabela3 = mysql_db_query ("baseimovel", "$sql3", $conexao);


// Declaração da pagina inicial
if (!isset($pagina))
{
$pagina = 2;
}

// Maximo de registros por pagina
$maximo="1";

// Calculando o registro inicial
$inicio=$pagina-1;
$inicio=$maximo*$inicio;


$busca = "";
if ($comprar == 1 and $alugar == 1)
{
}
elseif ($comprar <> 1 and $alugar <> 1)
{
$busca = $busca." and tbimovel.venda = 2";
}
else
{
if ($comprar == 1)
{
$busca = $busca." and tbimovel.venda = 1";
}
if ($alugar == 1)
{
$busca = $busca." and tbimovel.aluguel = 1";
}
}

if ($imovel <> 0)
{
$busca = $busca." and tbimovel.tipo_id = ".$imovel;
}
if ($municipio <> 0)
{
$busca = " and tbimovel.municipio_id = ".$municipio;
if ($bairro <> 0)
{
$busca = $busca." and tbimovel.bairro_id = ".$bairro;
}
}
if ($quartos <> 0)
{
$busca = $busca." and tbimovel.quartos = ".$quartos;
}
if ($suite <> 0)
{
$busca = $busca." and tbimovel.suite = 1";
}
if ($area <> 0)
{
$busca = $busca." and tbimovel.area > ".($area - $area*0.2)." and tbimovel.area < ".($area + $area*0.2);
}

// Query no qual o script se basea
$sql4 = "Select * From tbtipo, tbimovel, tbmunicipio, tbbairro Where tbimovel.tipo_id = tbtipo.tipo_id and tbimovel.municipio_id = tbmunicipio.municipio_id and tbimovel.bairro_id = tbbairro.bairro_id".$busca." LIMIT $inicio,$maximo";
$tabela4 = mysql_db_query ("baseimovel", "$sql4", $conexao);

$sql5 = "Select * From tbtipo, tbimovel, tbmunicipio, tbbairro Where tbimovel.tipo_id = tbtipo.tipo_id and tbimovel.municipio_id = tbmunicipio.municipio_id and tbimovel.bairro_id = tbbairro.bairro_id".$busca;
$tabela5 = mysql_db_query ("baseimovel", "$sql5", $conexao);
$total = mysql_num_rows ($tabela5);
?>




<head>
<title>Im&oacute;vel Center</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.caixa {
background-color: #99CC99;
list-style-position: outside;
width: 150px;
height: 20px;
}
-->
</style>
<style type="text/css">
<!--
.caixa2 {
background-color: #99CC99;
height: 20px;
width: 75px;
}
.botao {
background-color: #669900;
border: 1px inset #000000;
cursor: hand;
}
-->
</style>
<style type="text/css">
<!--
.caixa3 {
background-color: #99CC99;
height: 20px;
}
-->
</style>
<style type="text/css">
<!--
.caixa4 {
background-color: #99CC99;
width: 140px;
height: 20px;
}
-->
</style>

</head>

<body>
<table width="786" border="1" cellpadding="0" cellspacing="0" bordercolor="#336600">
<tr bgcolor="#99CC66">
<td height="2" colspan="3"> <div align="center"></div>
<div align="center"></div>
<div align="center"><font color="#006600"><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif">Site
de im&oacute;veis</font></strong></font></div></td>
</tr>
<tr>
<td width="133" valign="top" bgcolor="#99CC66"> <div align="center"></div></td>
<td width="482" align="center" valign="top" bgcolor="#99CC66"> <table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <div align="center"> <font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>
<?

// Calculando pagina anterior
$menos=$pagina-1;

// Calculando pagina posterior
$mais=$pagina+1;

// Calculos para a mostragem de paginas
$p_ini=$mais-1;
$p_ini=$maximo*$p_ini;

// Querys para a mostragem de paginas
$p_query=mysql_query("SELECT * FROM tbimovel LIMIT $p_ini,$maximo");
$p_total=mysql_num_rows($p_query);


// Listando as paginas
$i=1;
$pgs=$total/$maximo;
$formatado=number_format($pgs);

if($formatado<$pgs) {
$formatado=$formatado+1;
}

echo "Pág. $pagina de $formatado ";

// Mostragem de pagina
if($menos>0) {
echo "<a href=\"?pagina=$menos\">:: anterior</a> ";
}
if(mysql_num_rows($p_query)>0) {
echo " <a href=\"?pagina=$mais\"> proxima ::</a>";
}

?>
</strong></font></div></td>
</tr>
</table>
<?
while($resultado = mysql_fetch_array($tabela5)){
?>
<br><table width="470" height="15" border="1" cellpadding="5" cellspacing="0" bordercolor="#006600">
<tr>
<td align="center" valign="middle"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="105" height="15" valign="bottom"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Im&oacute;vel</font></strong></td>
<td width="119" height="15" valign="bottom"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Situa&ccedil;&atilde;o</font><font color="#FFFFFF" size="2">
</font></strong></td>
<td width="108" valign="bottom"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">&Aacute;rea</font></strong></font></td>
<td width="115" height="15"> <div align="center"><strong><font color="#006600" size="1" face="Verdana, Arial, Helvetica, sans-serif">Ver
Detalhes</font></strong></div></td>
</tr>
<tr>
<td height="15"><strong><font color="#FFFFFF" size="2"> <?=$resultado["tipo"]?>
</font></strong></td>
<td height="15"><strong><font color="#FFFFFF" size="2"> <? if($resultado["venda"] == 1 and $resultado["aluguel"] == 0)
{
echo"Vender";
}
elseif($resultado["venda"] == 1 and $resultado["aluguel"] == 1)
{
echo"Vender ou Alugar";
}
else
{
echo"Alugar";
}
?>
</font> </strong></td>
<td height="15"><strong><font color="#FFFFFF" size="2"> </font><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">
<?=$resultado["area"]?>
m&sup2;</font><font color="#FFFFFF" size="2"> </font></strong></td>
<td height="15"><strong><font color="#FFFFFF" size="2"> </font></strong></td>
</tr>
<tr>
<td height="15" valign="bottom"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Munic&iacute;pio</font></strong></td>
<td height="15" valign="bottom"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Bairro</font></strong></td>
<td height="15" valign="bottom"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">N&ordm;
Quartos</font><font color="#FFFFFF" size="2"> </font></strong></td>
<td height="15" valign="bottom"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Su&iacute;te</strong></font></strong></td>
</tr>
<tr>
<td height="15"><strong><font color="#FFFFFF" size="2"> <?=$resultado["municipio"]?>
</font></strong></td>
<td height="15"><strong> <font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">
</font><font color="#FFFFFF" size="2"> <?=$resultado["bairro"]?>
</font></strong></td>
<td height="15"><strong><font color="#FFFFFF" size="2"> <?=$resultado["quartos"]?>
</font></strong></td>
<td height="15"><strong><font color="#FFFFFF" size="2"> <? if($resultado["suite"] == 1)
{
echo " Sim";
}
else
{
echo " Não";
}?>
</font></strong></td>
</tr>
<tr>
<td height="15" colspan="4" valign="bottom"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Descri&ccedil;&atilde;o</strong></font></td>
</tr>
<tr>
<td height="15" colspan="4"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">
<?=$resultado["descricao"]?>
</font></strong></td>
</tr>
</table></td>
</tr>
</table>
<?
}
?>
</td>
<td width="163" align="center" valign="top" bgcolor="#99CC66"> <div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><form name="form1" action="" method="post" >
<div align="right"></div>
<table width="155" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><div align="center"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Encontre
seu im&oacute;vel</strong></font></div></td>
</tr>
<tr>
<td height="10"> <div align="center"></div></td>
</tr>
<tr>
<td><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>
<input name="comprar" type="checkbox" id="comprar" onClick="" value="1" checked>
Comprar
<input name="alugar" type="checkbox" id="alugar" onClick="" value="1" checked>
Alugar</strong></font></div></td>
</tr>
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>
</strong></font></div></td>
</tr>
<tr>
<td height="15" valign="bottom"> <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>&nbsp;&nbsp;Im&oacute;vel</strong></font></div></td>
</tr>
<tr>
<td><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<select name="imovel" class="caixa" id="select2">
<?
while ($lista_tipo = mysql_fetch_array($tabela3))
{?>
<option value =<?=$lista_tipo["tipo_id"]?> >
<?=$lista_tipo["tipo"]?>
</option>
<? }?>
</select>
</font></div></td>
</tr>
<tr>
<td height="15" valign="bottom"> <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>&nbsp;&nbsp;Munic&iacute;pio</strong></font></div></td>
</tr>
<tr>
<td><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<select name="municipio" class="caixa" id="select3" onChange="eval(this.options[this.selectedIndex].value)">
<option value="0" >-- Qualquer Um --</option>
<?
while ($lista_municipio = mysql_fetch_array($tabela2))
{ $p_municipio_id = $lista_municipio["municipio_id"];
$p_municipio = $lista_municipio["municipio"];

echo "<option value=\"parent.location.href='?municipio=$p_municipio_id';\" $checado>$p_municipio</option> \n";?>
<? }?>
</select>
</font></div></td>
</tr>
<tr>
<td height="15" valign="bottom"> <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>
&nbsp;&nbsp;Bairro</strong></font></div></td>
</tr>
<tr>
<td><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<select name="bairro" class="caixa" id="select4">
<option value="0">-- Qualquer Um -- </option>
<?
while ($lista_bairro = mysql_fetch_array($tabela1))
{?>
<option value=<?=$lista_bairro["bairro_id"]?>>
<?=$lista_bairro["bairro"]?>
</option>
<? }?>
</select>
</font></div></td>
</tr>
<tr>
<td height="15" valign="bottom"> <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>
&nbsp;&nbsp;Quartos </strong></font></div></td>
</tr>
<tr>
<td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>
<select name="quartos" class="caixa2" id="select5">
<option value="0">-------------</option>
<option value="1">Um</option>
<option value="2">Dois</option>
<option value="3">Tr&ecirc;s</option>
<option value="4">Quatro</option>
<option value="5">Cinco</option>
<option value="6">Seis</option>
<option value="7">Sete</option>
<option value="8">Oito</option>
<option value="9">Nove</option>
</select>
<input name="suite" type="checkbox" id="suite" value="1">
Suite&nbsp;&nbsp; </strong></font></div></td>
</tr>
<tr>
<td height="30" valign="bottom"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>&nbsp;&Aacute;rea
<input name="area" type="text" class="caixa3" id="area2" size="10" maxlength="7">
m &sup2; </strong></font></td>
</tr>
<tr>
<td height="15"> <div align="center"></div></td>
</tr>
<tr>
<td> <div align="center">
<input name="submitOK" type="hidden" value="1">
<input name="Submit" type="submit" class="botao" value="Buscar" onClick="buscar();">
</div></td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</div></td>
</tr>
</table>




</body>
Silvano Girardi Jr.
Re: busca com paginação
07 de April de 2003 às 05:04AM
Não dei muita atenção ao seu script, mas sim ao que você escreveu e é com base nisso que tentarei ajudar.
Vamos lá:
Você deve colocar if's antes de fazer as consultas ao MySQL, tipo:
if(isset($bairro) && !isset($municipio))
mysql_db_query.......
else if(isset($municipio))
...

Quanto à paginação, você precisa enviar as variáveis que são necessárias para a consulta junto aos links anterior e próxima.
Tipo:
?pagina=$menos&municipio=$municipio&bairro=$bairro etc...

Ajudei?

[]z
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.