Jump to content
Fórum Script Brasil
  • 0

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


inicianteemphp
 Share

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...