Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Naoh consigo deixar exibir a 2a pagina numa busca com pagi


inicianteemphp

Pergunta

Preciso de ajuda pra eu fazer uma busca com paginacao. Sou um iniciante em php.

A minha busca exibe quantos registros foram encontrados, mostra vinte registros na primeira pagina, mas quando clico na pagina seguinte naoh mostra os outros resultados que faltavam. Por exemplo: encontra 32 resultados, exibe 25 na primeira pagina e na segunda naoh exibe os outros 7 que faltavam, dá erro. alguém poderia me ajudar?

Os codigos são o seguinte:

ESTE é O FORM.

<form action="frame_busca_rapida_texto.php" method="POST" target="quadro_index_inicial" name="form_comborapida">

<!--onsubmit="return ValidarComboRapida(document.form_comborapida)"-->

<input type="text" size="22" name="busca_rapida" style="background-color:#F0FFF0;width:222px;height:25px;line-height:25px;

border:1px solid maroon;font-family:verdana;font-size:13px;color:#000000">

<div class="separador_do_combo"></div><div class="nome_combo" style="left:0px"><span style="padding-left:0px">Exibir:</span></div>

<select name="exibir" class="pesq_combo" style="position:absolute;width:110px;left:53px;">

<option value="tudo" selected="selected">Todos</option>

<option value="part">Particular</option>

<option value="rev">Revendedor</option>

</select>

<div class="separador_do_combo" style="height:40px;"></div><div class="nome_combo" style="left:-7;"><span style="padding-left:0px;font-size:11px;">Ordenar:</span></div>

<select name="ordem" class="pesq_combo" style="position:absolute;width:110px;left:53px;">

<option value="3" selected="selected">Por Data</option><option value="1">Menor preço</option>

<option value="2">Maior preço</option>

</select>

<input class="avancada_ok" type="submit" name="rapida" value="OK" title="Buscar a Pesquisa"

style="position:absolute;cursor:hand;top:35px;left:170px;width:54px;height:64px;font-family:verdana;font-weight:bold;font-size:18px;"></a>

</div></div>

</form>

<?php

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

if (!$conexao){

die("não foi possivel conectar ao servidor!");}

mysql_select_db("anuncios", $conexao);

?>

ESTE é A PAGINA QUE EXIBE OS RESULTADOS.

<?php

//INICIO Paginação

$numreg = 25;

if (!isset($_GET['pg'])) {

$_GET['pg'] = 0;}

$inicial = $_GET['pg'] * $numreg;

if(isset($_POST["rapida"])){

$exibe = $_POST["exibir"];

if($exibe==part"){

$exibicao = "todos_anuncios.anun_tipo='P'";$anunciante = "(Particular)";}

if($exibe=="rev"){

$exibicao = "todos_anuncios.anun_tipo='R'";$anunciante = "(Revendedor)";

}

if($exibe=="tudo"){

$exibicao = "((todos_anuncios.anun_tipo='P') or (todos_anuncios.anun_tipo='R'))";$anunciante = " ";

}

?>

<?php

$ordenar = $_POST["ordem];

if($ordenar=="1"){

$ordenacao = "todos_anuncios.preço ASC LIMIT";$ord = "(Ordenado por Menor Preço)";

}

if($ordenar=="2"){

$ordenacao = "todos_anuncios.preço DESC LIMIT";$ord = "(Ordenado por Maior Preço)";

}

if($ordenar=="3"){

$ordenacao = "todos_anuncios.data DESC LIMIT";$ord = "(Ordenado por Data)";

}

?>

<?php

$texto = $_POST['busca_rapida'];

if ($texto == ""){

echo "<script language=javascript>

alert(\" Digite alguma palavra para fazer a Busca Rapida!\");window.location=frame_inicial.php';</script> " ;

}else{

$palavra = explode(" ", $texto);

$result = count($palavra);

}

if ($result == 1){$palavra1=$palavra[0];

$sql = mysql_query("SELECT * FROM todos_anuncios INNER JOIN fotos_todos_anuncios ON placa = img_placa WHERE

((modelo='$palavra1' or marca='$palavra1' or cor='$palavra1') AND ($exibicao)) order by $ordenacao $inicial, $numreg");

$sql_conta = mysql_query("SELECT * FROM todos_anuncios INNER JOIN fotos_todos_anuncios ON placa = img_placa WHERE

((modelo='$palavra1' or marca='$palavra1' or cor='$palavra1') AND ($exibicao))");

}

if ($result == 2){$palavra1=$palavra[0];$palavra2=$palavra[1];

$sql = mysql_query("SELECT * FROM todos_anuncios INNER JOIN fotos_todos_anuncios ON placa = img_placa WHERE

(modelo='$palavra1' AND ano='$palavra2' AND $exibicao) OR

(marca='$palavra1' AND ano='$palavra2' AND $exibicao) OR

(modelo='$palavra1' AND cor='$palavra2' AND $exibicao) OR

(marca='$palavra1' AND cor='$palavra2' AND $exibicao) OR

(ano='$palavra1' AND cor='$palavra2' AND $exibicao)

order by $ordenacao $inicial, $numreg");

$sql_conta = mysql_query("SELECT * FROM todos_anuncios INNER JOIN fotos_todos_anuncios ON placa = img_placa WHERE

(modelo='$palavra1' AND ano='$palavra2' AND $exibicao) OR

(marca='$palavra1' AND ano='$palavra2' AND $exibicao) OR

(modelo='$palavra1' AND cor='$palavra2' AND $exibicao) OR

(marca='$palavra1' AND cor='$palavra2' AND $exibicao) OR

(ano='$palavra1' AND cor='$palavra2' AND $exibicao)");

}

if ($result == 3){$palavra1=$palavra[0];$palavra2=$palavra[1];$palavra3=$palavra[2];

$sql = mysql_query("SELECT * FROM todos_anuncios INNER JOIN fotos_todos_anuncios ON placa = img_placa WHERE

(marca='$palavra1' AND ano='$palavra2' AND cor='$palavra3' AND $exibicao) OR

(modelo='$palavra1' AND ano='$palavra2' AND cor='$palavra3' AND $exibicao) OR

(marca='$palavra1' AND modelo='$palavra2' AND ano='$palavra3' AND $exibicao) OR

(marca='$palavra1' AND modelo='$palavra2' AND cor='$palavra3' AND $exibicao)

order by $ordenacao $inicial, $numreg");

$sql_conta = mysql_query("SELECT * FROM todos_anuncios INNER JOIN fotos_todos_anuncios ON placa = img_placa WHERE

(marca='$palavra1' AND ano='$palavra2' AND cor='$palavra3' AND $exibicao) OR

(modelo='$palavra1' AND ano='$palavra2' AND cor='$palavra3' AND $exibicao) OR

(marca='$palavra1' AND modelo='$palavra2' AND ano='$palavra3' AND $exibicao) OR

(marca='$palavra1' AND modelo='$palavra2' AND cor='$palavra3' AND $exibicao)");

}

$quantreg = mysql_num_rows($sql_conta);

if ($quantreg == 0) {

echo "<p style='position:absolute;left:100px;top:60px;font-family:arial;font-size:14px;color:navy;'>

<b><font color='red'>Nenhum resultado encontrado para a busca: <font size=4> $texto</font></font></b><br>

*Certique se a palavra foi digitada corretamente.<br>

*No caso de mais de uma palvra, deixe espaco entre elas.<br>

*Voce pode fazer sua busca digitando uma, duas ou tres palavras. Exemplos:<br>

<span style='padding-left:200px'>Fiat</span><br>

<span style='padding-left:180px'>Uno 2011</span><br>

<span style='padding-left:150px'>Uno 2011 vermelho</span><br>

*Talvez a sua busca pode ser melhor realizada na Busca Avancada ao lado.</p>";}

else{

echo "<div style='position:absolute;width:690px;height:20px;left:20px;top:-22px;font-family:arial black;font-size:14px;color:blue;text-align:center;

background-color:#BFEFFF;/*border:1px solid maroon*/'>

Encontrados $quantreg anuncios <span style='font-size:12px;font-family:arial'>$anunciante</span> na busca: $texto. <span style='font-size:12px;font-family:arial'>

$ord.</span></div>";

}}

?>

<?php

include("paginacao_busca_rapida.php");

while ($aux = mysql_fetch_array($sql)){

if ($aux['anun_tipo]=='R'){

$frame="<a href='frame_revendedor.php?anun_id=".$aux['anun_id']."' title=Ver mais anuncios desta revendedora'>";

}else{$frame='';}

?>

<?php

echo "<div style='float:left;width:148px;height:252px;margin-top:8px;'>";

?>

<a href="slide_busca_rapida_texto.php?anun_id=<?php echo $aux['anun_id] ?>" class="foto_resultado1 classe81">

<img src="fotos/<?php echo $aux['img1'] ?>" style=position:absolute;width:120px;height:90px;border:0px" title="Ver mais Detalhes"></a>

<?php

echo "<div class='logo_resultado1' style='border:1px solid gray'>$frame<img src='".$aux['anunciante_imagem]."'

style='width:90px;height:50px;border:0px'></a></div>

<a href='slide_busca_rapida_texto.php?anun_id=".$aux['anun_id']."'><div class=classe2 texto_resultado1' title='Ver mais Detalhes'>

<b><font color=#000000> ".$aux['marca]."</font></b><br>".$aux['modelo']."&nbsp;".$aux['tipo_modelo']."<br>

".$aux['combustivel']."<br>".$aux['cor']."&nbsp;&nbsp;".$aux['ano']."</a><div class=preco_resultado1'><b>R$ ".number_format($aux['preço],2,",",".")."</b></div>

<img src='images/linha_busca.png' style='position:absolute;top:-98px;left:142px'>

</div>";

?>

<?php

echo "</div>";

}

mysql_close($conexao);

?>

</div>

ESTA é OS CODIGOS DA PAGINACAO.

<?php

$quant_pg = ceil($quantreg/$numreg);

$quant_pg++;

// Verifica se esta na primeira página, se não estiver ele libera o link para anterior

if ( $_GET['pg'] > 0) {

echo "<a href=.$_SERVER['PHP_SELF]."?pg=".($_GET['pg']-1)."class=pg><b>&laquo; anterior</b></a>";

} else {

echo "<font color=#CCCCCC>&laquo; 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 ($_GET['pg'] == ($i_pg-1)) {

echo "&nbsp;<span class=pgoff>[$i_pg]</span>&nbsp;";

} else {

$i_pg2 = $i_pg-1;

echo "&nbsp;<a href=.$_SERVER['PHP_SELF]."?pg=$i_pg2 class=pg><b>$i_pg</b></a>&nbsp;";

}

}

// Verifica se esta na ultima página, se não estiver ele libera o link para próxima

if (($_GET['pg']+2) < $quant_pg) {

echo "<a href=.$_SERVER['PHP_SELF]."?pg=".($_GET['pg']+1)." class=pg><b>próximo &raquo;</b></a>";

} else {

echo "<font color=#CCCCCC>próximo &raquo;</font>";

}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Você tem que pessar os dados que foram enviados pelo formulário junto com os links da paginação, caso contrário não vai funcionar mesmo, já que apenas a primeira página terá os dados para fazer os filtros, o resto terá apenas a página que está naquele momento.

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 esta pergunta...

×   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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...