Ir para conteúdo

POWERED BY:

Arquivado

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

Luiz Henrique

[RESOLVIDO] Problema em paginação com resultado da busca

Recommended Posts

Olá,

Estou com o seguinte problema:

- Faço a busca ele me retorna o resultado da busca correto mas não o coloca em paginação vem tudo na mesma página não faço idéia do que seja mudei tanta coisa já e não funciona alguém poderia ajudar a resolver?

 

busca.php

 

<?php	include("config.php");	$numreg = 1; 	if (!isset($pg)) {		$pg = 0;	}	$inicial = $pg * $numreg;	$busca = $_POST["busca"];	$cidade = $_POST["cidade"];	$categoria = $_POST["categoria"];	$erro = "sim";	if ( $cidade == "nenhuma"){		echo "<script language=Javascript>location.href='index.php'; </script>";		$erro = "nao";	}	if ( $erro == "sim"){			if (( $categoria == "nenhuma") && ( $busca == "")){				echo "<script language=Javascript>location.href='index.php'; </script>";			}else{				//$resultado =mysql_query ("select * from tb_cliente LIMIT $inicial, $numreg");				//$resultado =  ("SELECT * FROM tb_cliente where cidade = '$cidade' and categoria = '$categoria' or palavrachave = '$busca' LIMIT $inicial, $numreg");				$result = mysql_query ("select * from tb_cliente where cidade = '$cidade' and categoria = '$categoria' or palavrachave = '$busca'");//				$result = mysql_query($resultado) or die("Não foi possível conectar-se ao banco de dados");				$total = mysql_num_rows($result);				if($total == 0) {					echo "<script language=Javascript> alert('Nenhum resultado encontrado.'); location.href='java script:window.history.go(-1)'; </script>";				}				while ($row = mysql_fetch_array($result)) {					$nome = $row["nome"];					$fone = $row["fone"];					$endereco = $row['endereco'];					$num = $row["num"];					$complem = $row["complem"];					$bairro = $row["bairro"];					$cidade = $row["cidade"];					$estado = $row["estado"]; 					$email = $row["email"];						$site = $row["site"];					$categoria = $row["categoria"];					$descricao = $row["descricao"];					$imagem = $row['img'];?><tr><td><?php 	if ($imagem == ""){		echo "<h2>$categoria - $nome.</h2>";				}else{		echo "<a href=\"#\" id=\"imgToEnlarge\" onMouseOver=\"spCarregaImg(' $imagem ')\" onMouseMove=\"spFollow(event);\" onMouseOut=\"spInactive(event);\"><h2>$categoria - $nome.</a>";	}	echo "<h3>Descrição: $descricao.</h3>";	echo "<h3>Rua: $endereco - $num $bairro - $cidade.</h3>";	echo "<h3>Contato: $fone";	if ($email <> ""){ 		echo "- $email.</h3>";	}else{ 		echo ".";	}	if ($site <> ""){		echo "<a href='$site' target='_blank' class='link'><h4>Web-site: $site.</h4></a>";	}}} }	include "paginacao.php";?></table><?

paginacao.php

<div id="paginacao">	<div id="imagem_p"><!--		<img src="logo.jpg" class="img_logo"/>-->	</div>	<div id="cont_p"><?php		$quant_pg = ceil($total/$numreg);	$quant_pg++;		// Verifica se esta na primeira página, se nao estiver ele libera o link para anterior	if ( $pg > 0) {		echo "<a href=".$PHP_SELF."?pg=".($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 ($pg == ($i_pg-1)) {			echo " <span class=pgoff>[$i_pg]</span> ";		} else {			$i_pg2 = $i_pg-1;			echo " <a href=".$PHP_SELF."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";		}	}		// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima	if (($pg+2) < $quant_pg) {		echo "<a href=".$PHP_SELF."?pg=".($pg+1)." class=pg><b>próximo »</b></a>";	} else {		echo "<font color=#CCCCCC>próximo »</font>";	}?>

obrigado

 

----

 

esqueci de um detalhe mandei ele exibir 1 resultado por página paara testar a paginação, então ele ativa o avanças e voltar mostrando que há uma segunda página pois meu banco contem 2 registros, só que ao clicar também na pagina 2 ele retorna nenhum registro encontrado como se eu tivesse feito uma busca de algo que não existe ele faz essa verificação no code.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da na mesma Thiago,

 

Só que tive que substituir isso que você fez:

$pg = isset($_GET['pg']) ? abs(intval($_GET['pg'])) ? 0;
por isso:

if (!isset($pg)) {   $pg = 0;  }

senão não ia adiante dizia

 

Parse error: syntax error, unexpected ';' na linha 4 que é justamente ela

alguma outra sugestão, esse sistema de paginação está funcionando o problema é que ele não funciona no sistema de busca se eu mandar ele selecionar todos os registros do banco de dados sem condição nenhuma ele gera tudo certo as páginas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da na mesma Thiago,

Olhei o que passou o link, mas não sai do lugar rsrsrs não consegui fazer funcionar, bom enxutei esse meu para fascilitar o entendimento:

 

busca.php

<?	include "config.php";	$radio_teste = $_POST['radio_teste'];	$numreg = 3; 	$pg = isset($_GET['pg']) ? abs(intval($_GET['pg'])) : 0;	$inicial = $pg * $numreg;		$result = mysql_query ("SELECT * FROM tb_teste where teste = '$radio_teste' LIMIT $inicial, $numreg");	$sql = mysql_query ("select * from tb_teste where teste = '$radio_teste'");	$total = mysql_num_rows($sql);	if ($total == 0){		echo "Nenhum resultado!";	}	while ($row = mysql_fetch_array($result)){			$cont =  $row["teste"];		echo "$cont<br>";	}	echo "<br><br>";	include("paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >>	?>

paginacao.php --> continua a mesma

<?php	$quant_pg = ceil($total/$numreg);	$quant_pg++;	// Verifica se esta na primeira página, se nao estiver ele libera o link para anterior	if ( $pg > 0) {		echo "<a href=".$PHP_SELF."?pg=".($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 ($pg == ($i_pg-1)) {			echo " <span class=pgoff>[$i_pg]</span> ";		} else {			$i_pg2 = $i_pg-1;			echo " <a href=".$PHP_SELF."?pg=$i_pg2 class=pg><b>$i_pg</b></a> ";		}	}	// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima	if (($pg+2) < $quant_pg) {		echo "<a href=".$PHP_SELF."?pg=".($pg+1)." class=pg><b>próximo »</b></a>";	} else {		echo "<font color=#CCCCCC>próximo »</font>";	}?>

a index é um form com radio com value="teste" name="radio_teste" no meu banco tenho a tb_teste campo id e teste tenho 5 registros teste e outros 5 teste 1, teste2 etc...

o resultado que isto me mostra é:

 

teste

teste

teste

 

 

« anterior [1] 2 próximo »

 

ao clicar no próximo ou no nº 2 a resposta é:

 

Nenhum resultado!

 

« anteriorpróximo »

 

que vem daqui

if ($total == 0){		echo "Nenhum resultado!";	}

se eu mudo o valor de $numreg para 5 ou + ele exibe todos os registros, agora se eu alterar isso

 

$result = mysql_query ("SELECT * FROM tb_teste where teste = '$radio_teste' LIMIT $inicial, $numreg");$sql = mysql_query ("select * from tb_teste where teste = '$radio_teste'");
para isso

$result = mysql_query ("SELECT * FROM tb_teste  LIMIT $inicial, $numreg");$sql = mysql_query ("select * from tb_teste ");
o resultado muda ou seja funciona , mas ele pega todo conteudo do banco ou seja meu problema é filtrar o resultado,

O resultado gerado por isso é: (apenas abrindo a página sem enviar valor nenhuma para ela)

 

teste

teste

teste6

 

 

« anterior 1 [2] 3 4 próximo »

 

 

acho que deu para enteder melhor agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

luis não sei se vai te ajudar. mais pq não tenta pegar via $_REQUESTae não importa muito de como está vindo..bem tive esse problema uma vez com paginação e resovli assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno Capella não resolveu! vlw rapaz.

tmferreira passar por link seria por get? fiz isso do fom radio só que não deu mas é esse o problema memso fiz outro de oura forma aqui e o resultado é o mesmo gera a consulta mostra todasas páginas de acordo com o número de resultados que mandei ter mas ao clicar em p´roximo não exibe nada o code novo que fiz é este:

<?	$teste = $_GET["opcao"];	$conexao = mysql_connect ("localhost","user","pass");	$db = mysql_select_db ("teste_busca");	$sql = mysql_query ("select * from tb_teste where teste = '$teste' ");	$lpp = 3;	$total = mysql_num_rows($sql);	$paginas = ceil($total / $lpp);	if (!isset($pagina)) {		$pagina = 0;	}	$inicio = $pagina * $lpp;	$sql = mysql_query ("select * from tb_teste where teste = '$teste' LIMIT $inicio, $lpp");	while ( $l = mysql_fetch_array($sql) ){		$resposta = $l["teste"];		echo "$resposta <br>";	} 	 $pagina = $_GET["pagina"]; 	if(!$pagina)		$pagina = 0; 		$paginaA = $pagina * $lpp; 		for($i = 0; $i < $lpp; $i++) {			  $z = $i + $paginaA;	 		echo $total[$z] . "<br/>";		}		for($i = 0; $i < $paginas; $i++) {	 		$z = $i + 1;   			if($i != $pagina){	 			echo "<a href='" . $_SERVER["PHP_SELF"] . "?pagina=" . $i . "'>" . $z . "</a> ";   			}else{	 			echo "$z ";   			}		}?>
por sessão não consegui fazer da erro no session_start(); - mas desta forma com sessão eu teria que ter o cookie abilitado para funcinar certo, se sim ai não rola o sistema falha no ie, como posofazer isso da foma que voc falou Thiago neste script que o problema é manter o resultado.

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim luiz.

 

PHP
$url = $_SERVER['PHP_SELF']. "?opcao=".$_REQUEST["opcao"]."&pagina=".$pagina;

 

passa o parametro da busca junto com a url da paginação.

 

isso tu passa no get.

 

tipo

 

www.site.com.br/busca.php?opcao=carro

 

 

so pra ilustrar :)

 

 

ve se funciona assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não deu cara, e a variável $pagina tenho que substituir por $i senão não muda a página, ams quando muda se eu coloco ara exibir 3 resultados por página ele me retorna 4 na url do navegador, e não muda o conteúdo outra questão é se eu clico nos numeros da página ao inves de avançar ele não faz nada e ao clicar em voltar ele vola a página 0 que não tem nada rsrrs,

idéia do que possa ser?

tenta assim luiz.

 

PHP
$url = $_SERVER['PHP_SELF']. "?opcao=".$_REQUEST["opcao"]."&pagina=".$pagina;

 

passa o parametro da busca junto com a url da paginação.

 

isso tu passa no get.

 

tipo

 

www.site.com.br/busca.php?opcao=carro

 

 

so pra ilustrar :)

 

 

ve se funciona assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

luiz fiz umas modificações de amador no codigo mais acho que vai funcionar. ve se te adianta.

 

 

 

PHP
<?
    $teste = $_GET["opcao"];
        $lpp = 3;
    $conexao = mysql_connect ("localhost","user","pass");
    $db = mysql_select_db ("teste_busca");
         if (!isset($pagina)) {
        $pagina = 0;
    }
    $inicio = $pagina * $lpp;
    $sql2 = mysql_query ("select * from tb_teste where teste = '$teste' ");
    $sql = mysql_query ("select * from tb_teste where teste = '$teste' LIMIT $inicio, $lpp");  
    $total = mysql_num_rows($sql2);
    $paginas = ceil($total / $lpp);
        while ( $l = mysql_fetch_array($sql) ){
        $resposta = $l["teste"];
        echo "$resposta <br>";
    }
                        $anterior = $pc-1;
                        $proximo = $pc+1;
                        if($pagina>1){
                                                print "<div align='left'><a href='?opcao=".$_GET["opcao"]."&pagina=$anterior'><b>Voltar<b></a></div>";
                                                }
                                                print "<div align='center'>";
                                        for($i=0; $i<$paginas; $i++){
                                                $num = $i+1;
                                                $url = $_SERVER["PHP_SELF"]."?opcao=".$_GET["opcao"]."&pagina=".$num;
                                               
                                                if($num==$pagina){
                                                        print "[$num]";
                                                        }else{
                                                print "<a href='$url'>[$num]</a>";
                                                        }
                                               
                                                }
                                                print "</div>";
                                        if($pagina<$paginas){
                                                print "<div align='right'><a href='?opcao=".$_GET["opcao"]."&pagina=$proximo'><b>Proximo<b></a></div>";
                                                }       
                               
?>

 

bem isso é o que eu uso.

eu so não mudei o topo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal Bruno funcionou parcialmente,

Ele já não perde as informações ao passar para as outras páginas só que o link para próximo não sai do lugar imagino que deva ser necessa´rio acrescentar um contador para que isso funcione dentro da condição if do link , mas não sei qual é variável que esta sendo usada para isso vi que tem anterior e próximo mas junto um pc não sei qual delas faz isso vou ir mechendo aqui até funcionar outra coisa é o link voltar em todas as versões disso rsrsrs ele não funcionou só que agora ele retorna este erro:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Arquivos de programas\VertrigoServ\www\teste\teste.php on line 14

 

esses dias tive este problema em um sistema de paginação eu só substitui o arry por assoc e funcionou mas agora não está funcionando isso saberia dizer o porque disso também, por enquanto é só

obrigado rapaz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo foi o que acabei de fazer e funcionou, outra dúvida aproveitando o post o LIKE ele funciona para fazer uma busca sem que a palavra seja escrito por completa?ex:se eu quero buscar a palavra teste normalmente eu faria $teste = $_POST["form"];where teste = '$teste'com like$teste = $_POST["form"];where teste LIKE '%%$teste%%'o que aconteceria no caso o like faria retornar testetestesteeeeeetesfghmfgjm/çlmlevando em consideração que digitei no campo de busca a palavra tes para procura, e se ele não funciona o que pode ser?mas o problema principal esta resolvido obrigado pela ajuda a todos!abrass...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal Thiago era isso mesmo,

 

Surgiu um problema, acrescentei 30 registros no banco para testar pois minhas páginas vão gerar isso em cada, o que acontece é que só consigo fazer a paginação corretamente até 6 registros no 7º ou mais aparece somente 3 registros e não exibe nada mais, isso não tem haver por estar em method get se isto for um problema vai virar um problemão pois minha busca terá um formcom dois list menu e um ca,mpo busca para filtrar a busca.

 

Outra coisa é a última página não contém registros ela está gerando uma página a mais do que era para gerar, e estava gerando uma página 0 mas isso já arrumei.

 

Só mais estes doi ítens e fechou a busca

oabrigado

O funcionamento do LIKE é exatamente assim. O que está errado é a sintaxe. Não é necessário dois wildcards (%).

 

Considerando a palavra php como valor da variável $teste.

 

Abaixo a busca casa com "php", "A linguagem de programação php", "Podemos usar php para mil e uma coisas".

where teste LIKE '%$teste%'

 

Abaixo a busca casa com "php", "PHP é uma linguagem poderosa". A palavra buscada deve iniciar a frase.

where teste LIKE '$teste%'

 

Abaixo a busca casa com "php", "Para isso, podemos usar PHP". A palavra buscada deve finalizar a frase.

where teste LIKE '%$teste'

 

Abaixo o LIKE funciona exatamente como o igual, mas com menor performance.

where teste LIKE '$teste'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Surgiu um problema, acrescentei 30 registros no banco para testar pois minhas páginas vão gerar isso em cada, o que acontece é que só consigo fazer a paginação corretamente até 6 registros no 7º ou mais aparece somente 3 registros e não exibe nada mais, isso não tem haver por estar em method get se isto for um problema vai virar um problemão pois minha busca terá um formcom dois list menu e um ca,mpo busca para filtrar a busca.

Percebi que era por causa do contador de páginas eu tinha mandado começar da página 1 ao invés de uma provavel 0 que não aparece voltei o contador como 0 e funcionou ele só estava mostrando os últmios resultados, mas como faço então para pelo menos aparecer a página 0 onde aparece o número da página ou iniciar da 1 e os registros também?

Outra coisa é a última página não contém registros ela está gerando uma página a mais do que era para gerar, e estava gerando uma página 0 mas isso já arrumei.

Isso não tenho idéia do que fazer!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luiz

 

primeiramente

desculpe ter esquecido a variável $pc no codigo.

dei uma varrida no codigo mais acabei deixando ela.

foi mal.

 

bem creio que o problema deve está no inicio do seu codigo no isset($pagina).

e veja se vai dar o mesmo problema. ?

 

PHP
if (!isset($pagina)) {
        $pagina = 0;
    }
 
$inicio = $pagina - 1;
$inicio = $inicio * $total_reg;

 

acrescentei o -1 na variável inicio isso deve resolver seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daew rapaz, só pude entrar agora no fórum desde aquele dia!

Então, esta fazendo paginação na boa só que continua o problema de ter uma página 0 (zero), mas não mostra ela no contador de página lá ela mostra isso:

 

Anterior [1][2][3] Proximo

 

mas os primeios registros estão no suposto [0] e a última página [3] está vazia, essa sem problema não importa a última página mas na [0], ela deveria transferir tudo para 1 em diante ou incluir a [0][1][2][3]...

 

Você passou estas linhas:

 

if (!isset($pagina)) {	  $pagina = 0;	  }	  $inicio = $pagina - 1;	  $inicio = $inicio * $total_reg;
O $total_reg seria mysql_num_rows($var) no meu é somente $total, alguma outra sugestão?

obrigado

 

Luiz

 

primeiramente

desculpe ter esquecido a variável $pc no codigo.

dei uma varrida no codigo mais acabei deixando ela.

foi mal.

 

bem creio que o problema deve está no inicio do seu codigo no isset($pagina).

e veja se vai dar o mesmo problema. ?

 

PHP
if (!isset($pagina)) {

 

        $pagina = 0;

 

    }

 

 

 

$inicio = $pagina - 1;

 

$inicio = $inicio * $total_reg;

 

acrescentei o -1 na variável inicio isso deve resolver seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui luiz.

 

acertei o post.

 

o total_reg seria a quantidade de registro na consulta.

 

 

ta ae a parte correta.

 

PHP
$teste = $_GET["opcao"];

 

$lpp = 3;

 

$conexao = mysql_connect ("localhost","user","pass");

 

$db = mysql_select_db ("teste_busca");

 

if (!isset($pagina)) {

 

$pagina = 0;

 

 }

 

 $inicio = $pagina -1;

 

 $inicio = $pagina * $lpp;

 

 

 

 

 

é outra coisa tb luiz.

no teu codigo lça no final na parte de páginas você ainda está usando variáveis minahs. aceitei e to postando a parte correta.

 

PHP
$anterior = $pagina-1;

 

 $proximo = $pagina+1;

 

 if($pagina>1){

 

  print "<div align='left'><a href='?opcao=".$_GET["opcao"]."&pagina=$anterior'><b>Voltar<b></a></div>";

 

  }

 

print "<div align='center'>";

 

for($i=0; $i<$paginas; $i++){

 

$num = $i+1;

 

$url = $_SERVER["PHP_SELF"]."?opcao=".$_GET["opcao"]."&pagina=".$num;

 

if($num==$pagina){

 

  print "[$num]";

 

 }else{

 

 print "<a href='$url'>[$num]</a>";

 

 }

 

}

 

print "</div>";

 

if($pagina<$paginas){

 

 print "<div align='right'><a href='?opcao=".$_GET["opcao"]."&pagina=$proximo'><b>Proximo<b></a></div>";

 

}      

 

?>

 

 

 

 

 

po espero ter te ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso $lpp me enganei ao escrever $total, eu havia mudade mas não adiantou!

 

Aqui luiz.

 

acertei o post.

 

o total_reg seria a quantidade de registro na consulta.

 

 

ta ae a parte correta.

 

PHP
$teste = $_GET["opcao"];

 

$lpp = 3;

 

$conexao = mysql_connect ("localhost","user","pass");

 

$db = mysql_select_db ("teste_busca");

 

if (!isset($pagina)) {

 

$pagina = 0;

 

 }

 

 $inicio = $pagina -1;

 

 $inicio = $pagina * $lpp;

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

SQL:

PHP
CREATE DATABASE `teste_busca` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

 

USE `teste_busca`;

 

CREATE TABLE `tb_teste` (

 

  `id` int(11) unsigned NOT NULL auto_increment,

 

  `teste` varchar(50) NOT NULL,

 

  PRIMARY KEY  (`id`)

 

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=48 ;

 

 

 

INSERT INTO `tb_teste` (`id`, `teste`) VALUES

 

(1, 'teste'),(2, 'teste'),(3, 'teste'),(4, 'teste'),(5, 'teste'),(6, 'teste'),(7, 'teste'),(8, 'teste'),(9, 'teste'),(10, 'teste'),(11, 'teste'),(12, 'teste'),(13, 'teste'),(14, 'teste'),(15, 'teste'),

 

(16, 'teste'),(17, 'teste'),(18, 'teste'),(19, 'teste'),(20, 'teste'),(21, 'teste'),(22, 'teste'),(23, 'teste'),(24, 'teste'),(25, 'teste'),(26, 'teste'),(27, 'teste'),(28, 'teste'),(29, 'teste'),

 

(30, 'teste'),(31, 'teste'),(32, 'teste'),(33, 'teste'),(34, 'teste'),(35, 'teste'),(36, 'teste'),(37, 'teste'),(38, 'teste'),(39, 'teste'),(40, 'teste'),(41, 'teste'),(42, 'teste'),(43, 'testssse'),

 

(44, 'tesssste'),(45, 'tesssste'),(46, 'testesss'),(47, 'testesss');

 

 

 

Index

PHP
<form action="teste.php" method="get">

 

<input type="text" name="opcao" />

 

 

 

<input type="submit" />

 

</form>

 

 

teste.php

PHP
<?

 

        $teste = $_GET["opcao"];

 

    $lpp = 20;

 

    $conexao = mysql_connect ("localhost","user","pass");

 

    $db = mysql_select_db ("teste_busca");

 

   

 

    if (!isset($pagina)) {

 

                $pagina = 0;

 

        }

 

         $inicio = $pagina -1;

 

         $inicio = $pagina * $lpp;

 

 

 

    $sql2 = mysql_query ("select * from tb_teste where teste LIKE '$teste' ");

 

    $sql = mysql_query ("select * from tb_teste where teste = '$teste' LIMIT $inicio, $lpp");  

 

    $total = mysql_num_rows($sql2);

 

    $paginas = ceil($total / $lpp);

 

    if ($total == 0){

 

                echo "<script language=Javascript> alert('Nenhum resultado encontrado!'); location.href='java script:window.history.go(-1)'; </script>";

 

        }

 

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

 

      $resposta = $l["teste"];

 

        echo "$resposta <br>";

 

    }

 

       

 

        $anterior = $pagina-1;

 

    $proximo = $pagina+1;

 

   

 

        if($pagina > 0){

 

                print "<a href='?opcao=".$_GET["opcao"]."&pagina=$anterior' class='lnk'>Anterior </a>";

 

    }else{

 

                echo "<font color=#CCCCCC>« Anterior </font>";

 

        }

 

 

 

    for( $i = 0; $i < $paginas; $i++ ){

 

      $num = $i+1;

 

      $url = $_SERVER["PHP_SELF"]."?opcao=".$_GET["opcao"]."&pagina=".$num;

 

       

 

            if( $num == $pagina ){

 

             print "[$num]";

 

        }else{

 

              print "<a href='$url' class='pgoff'>[$num]</a>";

 

        }

 

    }

 

    if( $pagina < $paginas ){

 

                print "<a href='?opcao=".$_GET["opcao"]."&pagina=$proximo' class='lnk'> Proximo</a>";

 

    }else{

 

                echo "<font color=#CCCCCC> Próximo »</font>";

 

        }

 

?>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae luiz..

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

resolvido.

:)

 

fiz algumas mudanças vo postar tudo denovo.

 

formulário.php

PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

 

<head>

 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

 

<title>Untitled Document</title>

 

</head>

 

 

 

<body>

 

<form action="busca.php?opcao" method="post">

 

 

 

<input type="text" name="opcao" />

 

 

 

 

 

 

 

<input type="submit" />

 

 

 

</form>

 

 

 

</body>

 

</html>

 

 

 

paginacao.php

PHP
<?

 

 

 

        $teste = $_GET["opcao"];

 

 

 

    $lpp = 20;

 

 

 

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

 

 

 

    $db = mysql_select_db ("teste_busca");

 

 

 

   

 

 

 

   if (!$pagina) {

 

                $pc = "1";

 

                } else {

 

                $pc = $pagina;

 

                }

 

                $inicio = $pc - 1;

 

                $inicio = $inicio * $lpp;

 

 

 

 

 

    $sql2 = mysql_query ("select * from tb_teste where teste LIKE '$teste' ");

 

 

 

    $sql = mysql_query ("select * from tb_teste where teste LIKE '$teste' LIMIT $inicio, $lpp");  

 

 

 

    $total = mysql_num_rows($sql2);

 

 

 

    $paginas = $total / $lpp;

 

 

 

    if ($total == 0){

 

 

 

                echo "<script language=Javascript> alert('Nenhum resultado encontrado!'); location.href='java script:window.history.go(-1)'; </script>";

 

 

 

        }

 

 

 

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

 

 

 

        $resposta = $l["teste"];

 

 

 

        echo "$resposta <br>";

 

 

 

    }

 

 

 

       

 

 

 

        $anterior = $pc-1;

 

 

 

    $proximo = $pc+1;

 

 

 

   

 

 

 

        if($pc > 1){

 

 

 

                print "<a href='?opcao=".$_GET["opcao"]."&pagina=$anterior' class='lnk'>Anterior </a>";

 

 

 

    }else{

 

 

 

                echo "<font color=#CCCCCC>« Anterior </font>";

 

 

 

        }

 

 

 

 

 

 

 

    for( $i = 0; $i < $paginas; $i++ ){

 

 

 

        $num = $i+1;

 

 

 

        $url = $_SERVER["PHP_SELF"]."?opcao=".$_GET["opcao"]."&pagina=".$num;

 

 

 

       

 

 

 

            if( $num == $pc ){

 

 

 

                print "[$num]";

 

 

 

        }else{

 

 

 

                print "<a href='$url' class='pgoff'>[$num]</a>";

 

 

 

        }

 

 

 

    }

 

 

 

    if( $pc < $paginas ){

 

 

 

                print "<a href='?opcao=".$_GET["opcao"]."&pagina=$proximo' class='lnk'> Proximo</a>";

 

 

 

    }else{

 

 

 

                echo "<font color=#CCCCCC> Próximo »</font>";

 

 

 

        }

 

 

 

?>

 

 

 

pro luiz.

resolvido.

 

sem pagina fantasma e nem pagina em branco :)..

 

pode ficar tranquilo agora

:)

 

 

qualquer duvida é so falar :)

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.