Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Vinícius

Busca com paginação

Recommended Posts

Olá,

 

Estou tentando fazer uma busca com paginação, onde os dados são buscados no bd com "boolean mode".

 

A busca tá fazendo normalmente, mas na hora de ir pra segunda página, não abre nada. E qdo tento voltar pra primeira tb.

 

O código é este abaixo. Tentei enxugar tudo que não interessava, deixando só a parte do php.

 

$prod_id = $_POST['busca'];	$arquivo = "busca_resultado.php";				include "Connections/conexao.php";						$table = "produtos";	  // NOME DA TABELA A SER UTILIZADA			$maxpag = 2;			  // MÁXIMO DE RESULTADOS POR PÁGINA			$maxlnk = 10;			  // MÁXIMO DE LINKS POR PÁGINA			if ($id == ''){$param = 0;} else {			$temp = $id;			$passo1 = $temp - 1;			$passo2 = $passo1*$maxpag;			$param = $passo2;}//#####################################################################			$selec = "SELECT * FROM produtos WHERE MATCH(keywords) AGAINST ('$prod_id' IN BOOLEAN MODE)";			$selec1 = mysql_db_query("$banco", "$selec", $con);			$result = mysql_fetch_array($selec1);			$user = $result['prod_user'];									$sql = "SELECT *, MATCH (keywords) AGAINST ('$prod_id' IN BOOLEAN MODE) AS score FROM produtos WHERE MATCH (keywords) AGAINST ('$prod_id' IN BOOLEAN MODE) ORDER BY score DESC";						$sql_01 = "SELECT * FROM produtos WHERE MATCH(keywords) AGAINST ('$prod_id' IN BOOLEAN MODE) LIMIT $param, $maxpag";			$res1 = mysql_db_query("$banco", "$sql", $con);			$res2 = mysql_db_query("$banco", "$sql_01", $con);		  $totreg = mysql_num_rows($res1);			$totreg_01 = mysql_num_rows($res2);			//#####################################################################			$results_tot = $totreg;			$results_parc = $totreg_01;			$result_div = $results_tot/$maxpag;			$n_inteiro = (int)$result_div;			if ($n_inteiro < $result_div) {$n_paginas = $n_inteiro + 1;}			else {$n_paginas = $result_div;}			$pg_atual = $param/$maxpag+1;			$reg_inicial = $param + 1;			$pg_anterior = $pg_atual - 1;			$pg_proxima = $pg_atual + 1;			$time_end = getmicrotime(); 			$time = $time_end - $time_start; ?><?php 			while($resultado = mysql_fetch_array($res2)) { $contador ++;?><?echo "<img src=\"office/imagens_prod/thumbs/$resultado[prod_foto]\" border=0></a>";?>			<?php 			if ($id > 1) { ?>			<a href="<?php $arquivo ?>?id=<?php echo $pg_anterior; ?>" class="estilos"><b><<anterior</font><?php }?></a>				<?php 			if ($temp >= $maxlnk){			if ($n_paginas > $maxlnk) {$n_maxlnk = $temp + 4;			$maxlnk = $n_maxlnk;			$n_start = $temp - 6;			$lnk_impressos = $n_start;}}			while(($lnk_impressos < $n_paginas) and ($lnk_impressos < $maxlnk))			{ $lnk_impressos ++;			?>			<?php 						if ($pg_atual != $lnk_impressos){echo " "."<a href=\"$arquivo?id=$lnk_impressos\" class=\"estilos\">";}						if ($pg_atual == $lnk_impressos){echo " "."<b>"."[".$lnk_impressos."]"."</b></font>";} else {echo "$lnk_impressos";}?></a></b></font></td><?php }?>	  </font>					<?php			if ($reg_final < $results_tot) { ?><a href="<?php $arquivo ?>?id=<?php echo $pg_proxima;?>" class="estilos"><b> Próximo>></b></font></a></td><?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá tmferreira,Teu script tá bem legal. Realmente consigo mudar de página, com ele. Só preciso de uma ajuda tua pra adaptar para o que eu preciso. você pode me ajudar? Dei uma analisada e vi que você colocou os resultados do bd num array.No meu caso eu preciso mostrar uma figura, que tá numa pasta e o caminho no bd:Naquele que eu tinha, eu fazia assim:imagens/thumbs/$resultado[foto]Nesse teu script não consegui entender como funciona a consulta ao bd e onde tá o resultado (desculpe, ainda não entendo mt bem php). Como eu faço pra mostrar a imagem?Outra coisa. Na página que exibe a paginação, aparecem os links pra mudar a página:[<] [-5] [-4] [-3] [-2] [-1] [0] [1] 2 [>]Aqui tá um pouquinho confuso, pois, no exemplo que eu testei, só tem duas páginas. Assim como tá, fica parecendo que tem mais. O usuário clica e dá um erro. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/noatacad/public_html/aula/busca/paginacao.php on line 47 [<] [-5] [-4] -3 [-2] [-1] [0] [1] [2] [>] Não tem como fazer um if e exibir só a qtdade de páginas que realmente retornou na busca?Neste script que eu tava usando faz isso. Se precisar eu mando ele completo pra você dar uma olhada. Obrigado pela ajuda. Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.