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?
Pergunta
inicianteemphp
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']." ".$aux['tipo_modelo']."<br>
".$aux['combustivel']."<br>".$aux['cor']." ".$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>« anterior</b></a>";
} else {
echo "<font color=#CCCCCC>« 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 " <span class=pgoff>[$i_pg]</span> ";
} else {
$i_pg2 = $i_pg-1;
echo " <a href=.$_SERVER['PHP_SELF]."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";
}
}
// 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 »</b></a>";
} else {
echo "<font color=#CCCCCC>próximo »</font>";
}
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.