Ir para conteúdo

POWERED BY:

Arquivado

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

Menegat

[Resolvido] paginação

Recommended Posts

poste o código denovo

inclusive com a "query sql" de consulta.

 

pode ser q depois de tanta alteração tenha deixado passar algo(vamo terminar isso, meu!)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok....

 

bom aqui esta a query de consulta.....

 

$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."'";
$sql5 = mysql_query($x);

e aqui o restante do codigo.

$total_reg = "10"; // número de registros por página
							
							
							if (!isset($pagina)) {
								$pc = "1";
								$inicio=0; // de tudo que ele achar ele vai começar do item "0"
							}else {
								$pc = $pagina;
								$inicio = $pagina * $total_reg; // aqui multiplica qts registro você quer por página pelo "número" da pagina.
							// na verdade ele é o valor q vai ser o primeiro item gerado.
							}
							
										   						
							$limite = mysql_query("$x LIMIT ".$inicio.",".$total_reg) or die('A variável $limite apresentou o seguinte erro - '.mysql_error());
							
							
							$tr = 50; // verifica o número total de registros
							$tp = $tr / $total_reg; // verifica o número total de páginas
	 

							  if($msg == ""){
								  while($row5 =  mysql_fetch_array($limite)){
									$link_id = $row5["id"]; 
					   				echo '<img src="ff.gif" width="4" height="7"><span class="style5">_</span>' . '<span class="fonte_data">' . '<a href="produtos_detalhe.php?id='.$link_id.'">' . '<span class="fonte_data">' . $row5["produtos_nome"] . '</a>' .'<br><br>'; 
					   				$foto++;
								}

								
								// botões "Anterior e próximo"
								
									$anterior = $pc -1;
									$proximo = $pc +1;
									
									$link = 
									"campo_Tipo=".$_GET['campo_Tipo'].
									"&campo_Dorm=".$_GET['campo_Dorm'].
									"&campo_Faixa=".$_GET['campo_Bairro'].
									"&campo_Bairro=".$_GET['campo_Faixa'].
									"&Submit=Procurar";
									if ($pc>0) {
										echo " <a href='?".$link."&pagina=$anterior'><- Anterior</a> ";
									}
										echo "|";
									if ($pc<$tp) {
										echo " <a href='?".$link."&pagina=$proximo'>Próxima -></a>";
									}							
							}
?>

xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom menegat, fiz algumas alterações

. mudei a lógica da consulta (minha lógica anterior criou algumas contradições);

. reinseri a conta de valores retornados;

. inseri uma condição pra mostrar o "|";

. alterei o critério de mostrar o "próxima"

$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."'";
$sql5 = mysql_query($x);
$total_reg = "10";
//sem o teste de "página"
$pc = $pagina;
$inicio = $pc*$total_reg;

//ok
$limite = mysql_query("$x LIMIT ".$inicio.",".$total_reg)
		or die('A variável $limite apresentou o seguinte erro - '.mysql_error());

// contando valores para depois contar qts paginas
$tr = mysql_num_rows($sql5);
$tp = ($tr / $total_reg);

if($msg == ""){
	while($row5 =  mysql_fetch_array($limite)){
		$link_id = $row5["id"];
		echo '<img src="ff.gif" width="4" height="7"><span class="style5">_</span>' . '<span class="fonte_data">' . '<a href="produtos_detalhe.php?id='.$link_id.'">' . '<span class="fonte_data">' . $row5["produtos_nome"] . '</a>' .'<br><br>';
		$foto++;
	}
	
	$anterior = $pc-1;
	$proximo = $pc+1;
// veja se vai ser nescessário usar tudo isso no link
	$link =
	"campo_Tipo=".$_GET['campo_Tipo'].
	"&campo_Dorm=".$_GET['campo_Dorm'].
	"&campo_Faixa=".$_GET['campo_Bairro'].
	"&campo_Bairro=".$_GET['campo_Faixa'].
	"&Submit=Procurar";

	if ($pc>0) {
		echo " <a href='?".$link."&pagina=$anterior'><- Anterior</a> ";
	}
	if (($pc>0) && ($proximo<$tp)){
		echo "|";
	}
// troquei $pc por $pagina já que foi feita a conta antes ("sobrava" um proximo)
	if ($proximo<$tp) {
		echo " <a href='?".$link."&pagina=$proximo'>Próxima -></a>";
	}							
}
veja ai e qq coisa to aki

abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

henry franklin.....cara acho q esse tals de paginação por php tah com um encosto...

 

UASHUAHS

você me acredita se eu fala rq ele continua mostrando os mesmos registros?

 

=[[[

Compartilhar este post


Link para o post
Compartilhar em outros sites

q coisa, meu!

faz o seguinte:

poe isso aki no final da página (depois do link "proximo") e posta aki o resultado

echo "<br>".
"página:".$pagina."<br>". // atualiza essa linha
"página:".$pc."<br>".
"tipo de campo (consulta): ".$_GET['campo_Tipo']."<br>".
"inicia em: ".$inicio."<br>".
"registros encontrados: ".$tr."<br>".
"qtd de páginas: ".$tp."<br>";//atualizando essa linha (erro)

Compartilhar este post


Link para o post
Compartilhar em outros sites

apareceu isso aqui....

 

página:

página:

tipo de campo (consulta): 11

inicia em: 0

registros encontrados: 12

qtd de páginas: 1.2

 

sera q n eh por causa do resultado da qnt de paginas q da o erro??? 1.2???

 

abrasss

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterei a divisão, usei o operador de modulo, para reotrnar o resto da divisão, o calculo sai certo mas continua mostrando os mxm resultados..

 

=[[

Compartilhar este post


Link para o post
Compartilhar em outros sites

A tela é a mxm clicando em proximo e apos fazer a busca, n altera nada nos valores do print.......

so altera a url

q qndo e faita a pesquisa esta assim:

"http://localhost/marcelo/executtiva/busca.php?campo_codigo=&campo_Tipo=11&campo_Dorm=01&campo_Faixa=01&campo_Bairro=01&Submit=Procurar"

 

página:

página:

tipo de campo (consulta): 11

inicia em: 0

registros encontrados: 12

qtd de páginas: 2

 

e qndo clico em proximo fica assim..

"http://localhost/marcelo/executtiva/busca.php?campo_Tipo=11&campo_Dorm=01&campo_Faixa=01&campo_Bairro=01&Submit=Procurar&pagina=1"

 

página:

página:

tipo de campo (consulta): 11

inicia em: 0

registros encontrados: 12

qtd de páginas: 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

no primeiro link tem um item a mais ("campo_codigo="), pergunto: afeta em alguma coisa?

 

pois eh, meu amigo.

em algum lugar acima (no meio de seu codigo) deve estar sendo setado "$pagina" arbitrariamente.

tente localizar outros lugares q tenha "$página".

 

primeiro faça o seguinte:

poste isso aki nas primeiras linhas de teu codigo (linha 1 se puder)

$pagina=1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui esta o codigo do busca.php completo......dei uma olhada por cima mas acho q n ah ifs em aberto, mas talvez vcs consigam ver algo de errado q meu pouco conhcecimento n tenha notado e q seje importante..

 

include("conexao.php");
	include("databr.php");
	
	//resultados da busca de produtos.
	$campo = $_GET["campo_Tipo"];
	$dormitorios = $_GET["campo_Dorm"];
	$bairro = $_GET["campo_Bairro"];
	$faixa = $_GET["campo_Faixa"];
				
	if($campo == "0"){
		$msg = "Campo Imovel Invalido!";
	}//fecha primeiro if
	else{
		if($bairro == "01" && $faixa == "01"){ 
				if($dormitorios == "01"){
				
					$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."'";
					$sql5 = mysql_query($x);
				}
				else{
					$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."' AND produtos_dorm = '".$_GET["campo_Dorm"]."'";
					$sql5 = mysql_query($x);
					}
				}//fecha if dormitorios
				else{
					if($bairro == "0"){ 
						if($dormitorios == "01"){
							$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."' AND produtos_faixa = '".$_GET["campo_Faixa"]."'";
							$sql5 = mysql_query($x);
						}
						else{
								$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."' AND produtos_dorm = '".$_GET["campo_Dorm"]."'  AND produtos_faixa = '".$_GET["campo_Faixa"]."'";
								$sql5 = mysql_query($x);
						}
					}//fecha if bairro
					else{
						if($faixa == "1"){
							if($dormitorios == "01"){
							   $x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."' AND produtos_bairro = '".$_GET["campo_Bairro"]."'";
							   $sql5 = mysql_query($x);
							}
							else{ 
								$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."' AND produtos_dorm = '".$_GET["campo_Dorm"]."'  AND produtos_bairro = '".$_GET["campo_Bairro"]."'";
								$sql5 = mysql_query($x);
							}
						}//fecha if faixa
				}//fecha else do if $bairro && $faixa
			}//fecha if $bairro && $faixa
				
			if($dormitorios == "01" && $bairro != "0" && $faixa != "1"){
					$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."' AND produtos_bairro = '".$_GET["campo_Bairro"]."' AND produtos_faixa = '".$_GET["campo_Faixa"]."'";
					$sql5 = mysql_query($x);
			}
			if($campo != "0" && $dormitorios != "01" && $faixa != "1" && $bairro!= "0"){
						$x = "select * from produtos where Categoria = '".$_GET["campo_Tipo"]."' AND produtos_dorm = '".$_GET["campo_Dorm"]."'  AND produtos_bairro = '".$_GET["campo_Bairro"]."' AND produtos_faixa = '".$_GET["campo_Faixa"]."'";
						$sql5 = mysql_query($x);
			}
					 
					$num = mysql_num_rows($sql5);
					if($num == "0"){
						$msg =  "Nenhum imóvel cadastrado com estas informações.";
					}
		}//fecha primero else
	

	//conectando com o banco para achar as informações de rodapé do site.
	//$sql3 = mysql_query("select * from dados_empresa");
	//$row3 = mysql_fetch_array($sql3);
	
	//pega o produto coloca no display.
	$sql8 = mysql_query("select * from produtos where Categoria='".$_REQUEST["categorias_id"]."' ");
	
	//pega por get as informações para qual a categoria o cara clicou.
	$sql9 = mysql_query("select * from categorias where Id='".$_REQUEST["categorias_id"]."' order by Id desc");
	$row9 = mysql_fetch_array($sql9);
	
	
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo $row3["dados_empresa_nome"];?></title>
<style type="text/css">
<!--
-->
</style>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<link href="css_fontes.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
	background-attachment: fixed;
	background-image: url(bg.gif);
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
.fonte {	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: normal;
	color: #333333;
	text-decoration: none;
	line-height: 22px;
}
.branco {	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: bold;
	color: #FFFFFF;
	text-decoration: none;
	line-height: 23px;
}
.fonte_vermelha {	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: bold;
	color: #660000;
	text-decoration: none;
	line-height: 22px;
}
.fonte1 {font-family: "Trebuchet MS";
	font-size: 11px;
	line-height: 23px;
	color: #333333;
	text-decoration: none;
}
.qqqqqqq {font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: bold;
	color: #666666;
	text-decoration: none;
}
.style2Copy {	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	font-weight: bold;
	color: #000000;
	text-decoration: none;
	height: 18px;
}
.style1 {
	font-size: 14px;
	font-weight: bold;
}
.style5 {
	font-size: 11px;
	font-weight: bold;
	color: #FFFFFF;
	text-decoration: none;
}
-->
</style>
</head>

<body>
<table width="780" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
	<th height="77" valign="bottom" scope="col"> </th>
  </tr>
  <tr>
	<th height="291" background="banner.gif" scope="col"><script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','780','height','291','src','top','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','menu','false','wmode','transparent','scale','noscale','movie','top' ); //end AC code
	</script>
	  <noscript>
	  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="780" height="291">
		<param name="movie" value="top.swf">
		<param name="quality" value="high">
		<param name="menu" value="false">
		<param name="wmode" value="transparent">
		<param name="scale" value="noscale">
		<embed src="top.swf" width="780" height="291" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" menu="false" wmode="transparent" scale="noscale"></embed>
	  </object>
	  </noscript>
	</th>
  </tr>
  <tr>
	<th align="center" valign="top" background="bg2.gif" scope="col"><div align="center">
	  <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
		
		<tr>
		  <td><div align="center" class="fonte_rodape">
			<table width="86%" border="0" cellspacing="0" cellpadding="0">
			  <tr>
				<td height="60"><div align="right" class="fonte_menu">
				  
					<div align="center">
					  <table width="70%" border="0" align="right" cellpadding="3" cellspacing="0">
						<tr>
						  <td background="bg_bot.gif" class="fonte_menu"><div align="center"><strong><a href="index.php" target="_self" class="fonte_menu">Página Inicial</a></strong></div></td>
						  <td class="fonte_menu"><div align="center"><strong>. </strong></div></td>
						  <td background="bg_bot.gif" class="fonte_menu"><div align="center"><strong><a href="categorias.php" target="_self" class="fonte_menu">Imóveis</a></strong></div></td>
						  <td class="fonte_menu"><div align="center"><strong>.</strong></div></td>
						  <td background="bg_bot.gif" class="fonte_menu"><div align="center"><strong><a href="empresa.php" target="_self" class="fonte_menu">Empresa</a></strong></div></td>
						  <td class="fonte_menu"><div align="center"><strong>.</strong></div></td>
						  <td background="bg_bot.gif" class="fonte_menu"><div align="center"><strong><a href="corretores.php" target="_self" class="fonte_menu">Corretores</a></strong></div></td>
						  <td class="fonte_menu"><div align="center"><strong>.</strong></div></td>
						  <td background="bg_bot.gif" class="fonte_menu"><div align="center"><strong><a href="noticias.php" target="_self" class="fonte_menu">Notícias</a></strong></div></td>
						  <td class="fonte_menu"><div align="center"><strong> .</strong></div></td>
						  <td background="bg_bot.gif" class="fonte_menu"><div align="center"><strong><a href="contato.php" target="_self" class="fonte_menu">Contato</a></strong></div></td>
						</tr>
					  </table>
					</div>
				</div></td>
			  </tr>
			</table>
		  </div></td>
		</tr>
		
		<tr>
		  <td><div align="center">
			<table width="90%" border="0" cellspacing="0" cellpadding="0">
			  <tr>
				<td align="center" valign="top" class="fonte_normal"><table width="640" height="182" border="0" cellpadding="0" cellspacing="0">
				  <tr>
					<td height="20" align="left" valign="top" bgcolor="#FFFFFF" class="fonte_data"> </td>
				  </tr>
				  <tr>
					<td height="1" align="left" valign="top" bgcolor="#FFFFFF" class="fonte_data"><div align="center">
					  
						<div align="center">
						  <p>
							<?php if ($_GET['campo_Tipo'] == "") {
					echo "Digite um nome no campo de busca."; 
					}
				;?>
						  </p>
						  <p><?php //echo $msg;  ?> </p>
						</div>
					</div></td>
				  </tr>
				  <tr>
					
					<td height="1" align="left" valign="top" bgcolor="#FFFFFF" class="fonte_data"><div align="left"><strong>
					<?php
	
						$total_reg = "10";
						//sem o teste de "página"
						$pc = $pagina;
						$inicio = $pc*$total_reg;
						
						//ok
						$limite = mysql_query("$x LIMIT ".$inicio.",".$total_reg)
								or die('A variável $limite apresentou o seguinte erro - '.mysql_error());
						
						// contando valores para depois contar qts paginas
						$tr = mysql_num_rows($sql5);
						$tp = ($tr % $total_reg);
						
						if($msg == ""){
							while($row5 =  mysql_fetch_array($limite)){
								$link_id = $row5["id"];
								echo '<img src="ff.gif" width="4" height="7"><span class="style5">_</span>' . '<span class="fonte_data">' . '<a href="produtos_detalhe.php?id='.$link_id.'">' . '<span class="fonte_data">' . $row5["produtos_nome"] . '</a>' .'<br><br>';
								$foto++;
							}
							
							$anterior = $pc-1;
							$proximo = $pc+1;
						// veja se vai ser nescessário usar tudo isso no link
							$link =
							"campo_Tipo=".$_GET['campo_Tipo'].
							"&campo_Dorm=".$_GET['campo_Dorm'].
							"&campo_Faixa=".$_GET['campo_Bairro'].
							"&campo_Bairro=".$_GET['campo_Faixa'].
							"&Submit=Procurar";
						
							if ($pc>0) {
								echo " <a href='?".$link."&pagina=$anterior'><- Anterior</a> ";
							}
							if (($pc>0) && ($proximo<$tp)){
								echo "|";
							}
						// troquei $pc por $pagina já que foi feita a conta antes ("sobrava" um proximo)
							if ($proximo<$tp) {
								echo " <a href='?".$link."&pagina=$proximo'>Próxima -></a>";
							}   
								echo "<br>". "página:".$página."<br>". "página $pc:".$pc."<br>".
"tipo de campo (consulta): ".$_GET['campo_Tipo']."<br>". "inicia em: ".$inicio."<br>".
"registros encontrados: ".$tr."<br>".  "qtd de páginas: ".$tp.	"<br>";						 
							}
							
							
						echo $msg;
	
	
	
	
				?>
					</strong></div></td>
				  </tr>
				  
				</table></td>
			  </tr>
			</table>
		  </div></td>
		</tr>
	  </table>
	</div></th>
  </tr>
  <tr>
	<th height="20" align="center" valign="top" background="bg2.gif" scope="col"><table width="100%" border="0" cellspacing="0" cellpadding="0">
	  
	  <tr>
		<td> </td>
	  </tr>
	  <tr>
		<td><div align="center"><span class="fonte_rodape"><?php echo $row3["dados_empresa_nome"];?>  . <?php echo $row3["dados_empresa_telefone"];?> . <?php echo $row3["dados_empresa_endereco"];?> . <?php echo $row3["dados_empresa_cidade"];?> - <?php echo $row3["dados_empresa_estado"];?></span></div></td>
	  </tr>
	  <tr>
		<td><div align="center" class="fonte_rodape">
			<div align="center">Todos os Direitos Reservados . <a href="http://www.agenciapro-v.com.br" target="_blank"><span class="fonte_menu"><strong>Desenvolvido por PRO-V Comunicação</strong></span></a></div>
		</div></td>
	  </tr>
	  <tr>
		<td> </td>
	  </tr>
	  
	</table></th>
  </tr>
</table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no primeiro link tem um item a mais ("campo_codigo="), pergunto: afeta em alguma coisa?

 

pois eh, meu amigo.

em algum lugar acima (no meio de seu codigo) deve estar sendo setado "$pagina" arbitrariamente.

tente localizar outros lugares q tenha "$página".

 

primeiro faça o seguinte:

poste isso aki nas primeiras linhas de teu codigo (linha 1 se puder)

$pagina=1;

o campo_codigo é apenas uma variavel de banco apra cadastro e tals, ele n eh preenchido na ora da busaca. e como se fosse uma descrição do produto e tals.

 

irei setar o $pagina pois n esta sendo setado em nenhuma parte do codigo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

setei na primeira linha o $pagina, agora ele mostra apenas os 2 resultados q faltavam, e o link anterior, mas qndo clico em anterior ele n mostras os 10 primeiros....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que achei o erro. Coloca isto e testa.

 

$pagina = (isset($_GET['pagina'])) ? $_GET['pagina'] : 0; //adiciona esta linha aqui e testa.
$pc = $pagina;

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

aewwwwwwww carloo....henry...

 

solucionadoo.....

o codigo acima funciono.....

na verdade todo o trabalho de vcs resultou nisso..

agradeço aos 2 por estarem nessa comigo desde o inicio.......

e por n me deixarem na mão em momento algum......mxm eu merecendo...xD

xDD

 

 

Obrigado novamente.....

 

se n fosse por vcs estaria ate hj tentando e concerteza sem mto sucesso...

 

ObrigadoOO...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que deu certo. Não tinha pensado que poderia ser isto...

 

Agora vou fazer uma sugestão... Dá uma estudada em Sql Injection. Tem que dar uma filtrada nos dados que vem por GET ou por POST.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok...vou dar uma estudadinha nisso sim.....e tentar ageitar minha filtatragem de dados....eu tinha feito uma mas compacta e tals, mas ela apresentava um erro e como oq me pareceu mais importante e demorado a se resolvoer foi a paginação dei mais enfase a ela.....

 

agora vou ajustar o codigo, e deixar ele em um "padrão", para q fique melhor para qm for velo ou trabalhar cm ele futuramente...

 

agradeço as dicas novamente Carlo, Henry, agradeço mesmo....

mto obrigadoo...

 

\o\

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

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.