Ir para conteúdo
Fórum Script Brasil

Busca Avançaba Com Paginação


Posts Recomendados

Olá pessoal, sou novo aquí e esse é meu primeiro pedido de ajuda, pois estou penando a quase duas semanas tentando adaptar uma paginação com 10 resultados por página no meu sistema de busca com 5 campos.

A Busca funciona perfeito mas se eu tento adaptar a paginação ela para.

alguém poderia me ajudar? Pode até passar orçamento. Desde já agradeço a atenção de todos.

O codigo é esse:

<?php include('Connections/conexao.php'); ?>

<form action="teste.php" method="POST" name="busca" id="busca">
Referência:
<input name="ref" class="formulario" id="ref" style="WIDTH: 160px">
<br>
Tipo de Imóvel:
<SELECT name="tipo" class="formulario" id="tipo" style="WIDTH: 160px">
<OPTION value="todos" selected>Todos</OPTION>
<?php
$sql = "select * from casa group by tipo";
$resposta = mysql_query( $sql );
while ( $linha = mysql_fetch_array( $resposta )) {
?>
<option value="<?php echo $linha["tipo"];?>"><?php echo $linha["tipo"];?></option>
<?php
}mysql_free_result( $resposta );
mysql_close($conexao);
?>
</SELECT>
<br>
Operação:
<SELECT name="operacao" class="formulario" id="operacao" style="WIDTH: 160px">
<OPTION value="todos" selected>Todos</OPTION>
<?php
$sql = "select * from casa group by operacao";
$resposta = mysql_query( $sql );
while ( $linha = mysql_fetch_array( $resposta )) {
?>
<option value="<?php echo $linha["operacao"];?>"><?php echo $linha["operacao"];?></option>
<?php
}mysql_free_result( $resposta );
mysql_close($conexao);
?>
</SELECT>
<br>
Condomínio:
<SELECT name="condominio" class="formulario" id="condominio" style="WIDTH: 160px">
<OPTION value="todos" selected>Todos</OPTION>
<?php
$sql = "select * from casa group by condominio";
$resposta = mysql_query( $sql );
while ( $linha = mysql_fetch_array( $resposta )) {
?>
<option value="<?php echo $linha["condominio"];?>"><?php echo $linha["condominio"];?></option>
<?php
}mysql_free_result( $resposta );
mysql_close($conexao);
?>
</SELECT>
<br>
Faixa de Valores:
<SELECT name="cvalor" class="formulario" id="cvalor" style="WIDTH: 160px">
<OPTION value="todos" selected>Todos</OPTION>
<OPTION value="a">At&eacute; R$ 200 mil</OPTION>
<OPTION value="b">R$ 201 mil at&eacute; R$ 400 mil</OPTION>
<OPTION value="c">R$ 401 mil at&eacute; R$ 600 mil</OPTION>
<OPTION value="d">R$ 601 mil at&eacute; R$ 800 mil</OPTION>
<OPTION value="e">R$ 801 mil at&eacute; R$ 1 milh&atilde;o</OPTION>
<OPTION value="f">Acima de R$ 1 milh&atilde;o</OPTION>
</SELECT>
<br>
<input name="Submit" type="submit" class="formulario" id="button" value="Pesquisar" />
<input name="button2" type="reset" class="formulario" id="button2" value="Limpar" />
<br>
</form>

<?php

$num_por_pagina = 10;

if (!$pagina) {
$pagina = 1;
}

$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;


if ($ref != '') {
$ref = $_POST['ref'];
$sql = "SELECT * FROM casa where ";
$sql .= "ref='$ref' ";
}
else
{
$tipo = $_POST['tipo'];
$operacao = $_POST['operacao'];
$condominio = $_POST['condominio'];
$cvalor = $_POST['cvalor'];
$cnt = 0;
$sql = "SELECT * FROM casa ";

if($tipo != 'todos')
{
$sql .= "where tipo='$tipo' ";
$cnt=1;
}
if($operacao != 'todos')
{
if ($cnt==1)
$sql .= "AND operacao='$operacao' ";
else
$sql .= "where operacao='$operacao' ";
$cnt=1;
}
if($condominio != 'todos')
{
if ($cnt==1)
$sql .= "AND condominio='$condominio' ";
else
$sql .= "where condominio='$condominio' ";
$cnt=1;
}
if($cvalor != 'todos')
{
if ($cnt==1)
$sql .= "AND cvalor='$cvalor' ";
else
$sql .= "where cvalor='$cvalor' ";
}
}
$sql .= ("ORDER BY Id DESC LIMIT $primeiro_registro, $num_por_pagina");

{

$consulta = mysql_query($sql)or die (mysql_error());
for($i=0;$result=mysql_fetch_array($consulta);$i++)
{
?>

<img src="imagens/casas/<?php echo $result['foto1']; ?>" width="200" border="0"/><br>
<?php echo $result['condominio'];?><br>
<?php echo $result['valor'];?><br>
<?php echo $result['tipo'];?><br>
<?php echo $result['descricao'];?>
<?php echo $result['ref'];?><br>

<?php
}
}
?>

Editado por GilbertoSanchez
Link para o comentário
Compartilhar em outros sites

alguém me daria uma dica de como fazer essa busca com paginação funcionar...

Já tentei um monte e estou ficando maluco com isso...

<?php include('conecta.php'); ?>

<form action="teste2.php" method="GET" name="busca" id="busca">
      <p>Refer&ecirc;ncia:
        <input name="ref" class="formulario" id="ref" style="WIDTH: 160px" />
          <br />
        Tipo de Im&oacute;vel:
        <select name="tipo" class="formulario" id="tipo" style="WIDTH: 160px">
          <option value="todos" selected>Todos</option>
          <?php
$sql = "select * from casa group by tipo";
$resposta = mysql_query( $sql );
while ( $linha = mysql_fetch_array( $resposta )) {
?>
          <option value="<?php echo $linha["tipo"];?>"><?php echo $linha["tipo"];?></option>
          <?php
} mysql_free_result( $resposta );
mysql_close($conexao);
?>
        </select>
        <br />
        Opera&ccedil;&atilde;o:
        <select name="operacao" class="formulario" id="operacao" style="WIDTH: 160px">
          <option value="todos" selected>Todos</option>
          <?php
$sql = "select * from casa group by operacao";
$resposta = mysql_query( $sql );
while ( $linha = mysql_fetch_array( $resposta )) {
?>
          <option value="<?php echo $linha["operacao"];?>"><?php echo $linha["operacao"];?></option>
          <?php
} mysql_free_result( $resposta );
mysql_close($conexao);
?>
        </select>
        <br />
        Condom&iacute;nio:
        <select name="condominio" class="formulario" id="condominio" style="WIDTH: 160px">
          <option value="todos" selected>Todos</option>
          <?php
$sql = "select * from casa group by condominio";
$resposta = mysql_query( $sql );
while ( $linha = mysql_fetch_array( $resposta )) {
?>
          <option value="<?php echo $linha["condominio"];?>"><?php echo $linha["condominio"];?></option>
          <?php
} mysql_free_result( $resposta );
mysql_close($conexao);
?>
        </select>
        <br />
        Faixa de Valores:
        <select name="cvalor" class="formulario" id="cvalor" style="WIDTH: 160px">
          <option value="todos" selected>Todos</option>
          <option value="a">At&eacute; R$ 200 mil</option>
          <option value="b">R$ 201 mil at&eacute; R$ 400 mil</option>
          <option value="c">R$ 401 mil at&eacute; R$ 600 mil</option>
          <option value="d">R$ 601 mil at&eacute; R$ 800 mil</option>
          <option value="e">R$ 801 mil at&eacute; R$ 1 milh&atilde;o</option>
          <option value="f">Acima de R$ 1 milh&atilde;o</option>
        </select>
        <br />
        <input name="Submit" type="submit" class="formulario" id="button" value="Pesquisar" />
        <input name="button2" type="reset" class="formulario" id="button2" value="Limpar" />
      </p>
</form>

<?php
$pagina = $_GET['pagina'];
$num_por_pag = 4; // Quantos registros por página vai ser mostrado
if (!isset($pagina)) {
$pagina = 0;
}
$inicial = $pagina * $num_por_pag;

if ($ref != '') {
    $ref = $_GET['ref'];
    $sql = "SELECT * FROM casa where ";
    $sql .= "ref='$ref' ";
    }
else
    {
    $tipo = $_GET['tipo'];
    $operacao = $_GET['operacao'];
    $condominio = $_GET['condominio'];
    $cvalor = $_GET['cvalor'];
    $cnt = 0;
    $sql = "SELECT * FROM casa ";

if($tipo != 'todos')
{
    $sql .= "where tipo='$tipo' ";
    $cnt=1;
}
if($operacao != 'todos')
{
    if ($cnt==1)
        $sql .= "AND operacao='$operacao' ";
    else
        $sql .= "where operacao='$operacao' ";
        $cnt=1;
}
if($condominio != 'todos')
{
    if ($cnt==1)
        $sql .= "AND condominio='$condominio' ";
    else
        $sql .= "where condominio='$condominio' ";
        $cnt=1;
}
if($cvalor != 'todos')
{
    if ($cnt==1)
        $sql .= "AND cvalor='$cvalor' ";
    else
        $sql .= "where cvalor='$cvalor' ";
}
}
$sql .= ("ORDER BY Id DESC LIMIT $inicial, $num_por_pag ");
{
$consulta = mysql_query($sql)or die (mysql_error());
for($i=0;$result=mysql_fetch_array($consulta);$i++)
{
?>

<a href="imovel_detalhado.php?Id=<?php echo $result['Id']; ?>"><img src="imagens/casas/<?php echo $result['foto1']; ?>" width="200" border="0"/></a></td>
<a href="imovel_detalhado.php?Id=<?php echo $result['Id']; ?>" class="anuncio_bold"><?php echo $result['condominio'];?></a> - <strong><?php echo $result['valor'];?></strong><br />
<a href="imovel_detalhado.php?Id=<?php echo $result['Id']; ?>" class="anuncio"><?php echo $result['tipo'];?></a><br />
<a href="imovel_detalhado.php?Id=<?php echo $result['Id']; ?>" class="anuncio"><?php echo $result['descricao'];?></a><br />
<a href="imovel_detalhado.php?Id=<?php echo $result['Id']; ?>" class="anuncio_bold"><?php echo $result['ref'];?></a><br />
<strong></strong>

<?php
}
}
?>

<?php
$consulta = "SELECT COUNT(*) FROM Id";
list($total_reg) = mysql_fetch_array(mysql_query($sql));

$total_paginas = $total_reg/$num_por_pag;

$prev = $pagina - 1;
$next = $pagina + 1;

if ($pagina > 1) {
$prev_link = "<a href=\"$PHP_SELF?pagina=$prev\">Anterior</a>";
} else {
$prev_link = "Anterior";
}

if ($total_paginas > $pagina) {
$next_link = "<a href=\"$PHP_SELF?pagina=$next\">Próxima";
} else {
$next_link = "Próxima";
}

$total_paginas = ceil($total_paginas);
$painel = "";

$pag_inic=floor($pagina/10)*10;
if ($pag_inic==0)
$pag_inic=1;

$pag_final = (floor($pagina/10)*10)+10;

for ($x=$pag_inic; $x<=$total_paginas && $x<=$pag_final; $x++) {
if ($x==$pagina) {
$painel .= " [$x] ";
} else {
$painel .= " <a class=\"links\" href=\"$PHP_SELF?pagina=$x\">[$x]</a>";
}
}

if ($pag_inic >= 10) {
if ($pag_inic==10)
$menos_10 = "<a class=\"links\" href=\"$PHP_SELF?pagina=1\">-10</a>";
else
$menos_10 = "<a href=\"$PHP_SELF?pagina=".($pag_inic-9)."\">-10</a>";
} else {
$menos_10 = "-10";
}

if ($total_paginas > $pag_final) {
$mais_10 = "<a href=\"$PHP_SELF?pagina=$pag_final\">+10</a>";
} else {
$mais_10 = "+10";
}

echo "$menos_10 $prev_link $painel $next_link $mais_10";

?>

Link para o comentário
Compartilhar em outros sites

Apartir do momento em que você pede um orcamento seu post deixa de ser uma dúvida, estou movendo para sala classificados.

PS: não sou contra comércio no fórum, pelo contrário sou a favor, mas tem que ser postado na sala correta

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...