Ir para conteúdo

POWERED BY:

Arquivado

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

Menegat

[Resolvido] paginação

Recommended Posts

Menegat: teu codigo tava quase certo filho.

soh tinha uns erros e etc.

 

 

<?php
$sql5 = "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"]."'";
//veja se isso vai lhe trazer os resultados

$total_reg = "10"; // número de registros por página

if (!$pagina) {
	$pc = "1";
	$inicio=0;
} else {
	$pc = $pagina;
	$inicio = $pagina * $total_reg;
}

$limite = mysql_query("$sql5 LIMIT ".$inicio.",".$total_reg);
$todos = mysql_query($sql5);

$tr = mysql_num_rows($todos); // 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 = $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.'">' . '<span class="fonte_data">' . $row5["produtos_nome"] . '</a>' .'<br><br>';
	   $foto++;
	}
	// botões "Anterior e próximo"
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?pagina=$proximo'>Próxima -></a>";
}	
}								

?>
se esse era todo o problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

xDD henry...alterei o codigo como você postou...

e qndo clico em proximo aparece os seguintes erros...

 

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\marcelo\executtiva\busca.php on line 293

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\marcelo\executtiva\busca.php on line 297

 

=]]]

Compartilhar este post


Link para o post
Compartilhar em outros sites

carlo...esqueci de postar antes para você poder analisar melhor...

 

a url q mostra os dados ou seja na pagina 1 e esse:

 

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

 

e depois q clico em proximo:

 

"http://localhost/marcelo/executtiva/busca.php?campo_Tipo=11&pagina=2"

Compartilhar este post


Link para o post
Compartilhar em outros sites

envie novamente as mesmas informações.

 

substitua isto:

if ($pc>1) {
echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?pagina=$proximo'>Próxima -></a>";
}
por isto:

$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>1) {
		echo " <a href='?".$link."pagina=$anterior'><- Anterior</a> ";
	}
	echo "|";
	if ($pc<$tp) {
		echo " <a href='?".$link."pagina=$proximo'>Próxima -></a>";
	}
e veja no que dá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem esse sistema de paginação que eu fiz, funciona perfeito, caso você desejar pode ate melhorar o codigo.

 

seque o link.

 

Paginção

 

este sistema é uma função olha no php como usar function.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha os links...

 

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

e depois q clico em proximo:

"http://localhost/marcelo/executtiva/busca.php?campo_Tipo=11&pagina=2"

Uma boa sugestão é como o henri_franklin colocou. Se fizer assim no seu código anterior deve funcionar.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

aew pessoal...

desculpa n responder nada pela manha.......

estava na aula....

 

bom testei o codigo com o henri_franklin falo....

 

bom ele continua cm o erro qndo clico em proximo.......................

 

mas o link muda e fica igual o da pagina 1...

 

veja

primeira pagina:

 

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

 

e depois q passo pra proxima:

 

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

 

eis o erro:

LIMIT 10

A variável $limite apresentou o seguinte erro - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 10' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

So uma duvida, no codigo do lucas, ele eh orientado a objetos n eh?

 

tem como implementar a minha pagina mesmo ela n sendo orientada...??

 

e em q parte do codigo eu coloco ela???

 

jah q nele n ah o while q mostra os resultados....??

 

abrass

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okay... altere:

if ($pc>1) {
		echo " <a href='?".$link."pagina=$anterior'><- Anterior</a> ";
	}
	echo "|";
	if ($pc<$tp) {
		echo " <a href='?".$link."pagina=$proximo'>Próxima -></a>";
	}
para:
if ($pc>1) {
		echo " <a href='?".$link."&pagina=$anterior'><- Anterior</a> ";
	}
	echo "|";
	if ($pc<$tp) {
		echo " <a href='?".$link."&pagina=$proximo'>Próxima -></a>";
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tinha reparado q o William havia respondido

 

if ($pc<$tp) {
		echo " <a href='?".$link."pagina=$proximo'>Próxima -></a>";
	}
ops!

esqueci um "&" nos link's

if ($pc<$tp) {
		echo " <a href='?".$link."&pagina=$proximo'>Próxima -></a>";
}

Bom meu filho, boa sorte para ti.

Ainda há esperança para seu código!

Compartilhar este post


Link para o post
Compartilhar em outros sites

|o|....

agora qndo passa para a proxima pagina ele mostras os mxm produtos da primeira....

 

xDDD

 

como posso fazer para resolver isso...algum outro laço.....ou ele deveria mostrar os proximos sem algum outro complemento....

Compartilhar este post


Link para o post
Compartilhar em outros sites

entaum cara.

quem vai mandar na paginação é a variável "página"

veja se ela está sendo recebida e veja se o começo do código está nesse formato (ou quase)

veja os comentários.

$total_reg = "10"; // número de registros por página
if (!$pagina) {
	$pc = "1";
	$inicio=0; // padrão default
} else {
	$pc = $pagina;
// aqui que abrincadeira se torna realidade
	$inicio = $pagina * $total_reg; // aqui ele multiplica quantos registros ele terá por página pelo "número da página"

}
// essa parte: ".$inicio.",".$total_reg (começo de registros , qantidade a ser mostrado)
// a idéia é mostrar os dados começando de "tal" registro ($inicio) em "tantos itens" na página($total_reg)
$limite = mysql_query("$sql5 LIMIT ".$inicio.",".$total_reg);

nesse padrão ele funcionará repeitando "LIMIT inicio,qtdnapagina"

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu codigo esta assim.....

$total_reg = "10"; // número de registros por página
							
							if (!$pagina) {
								$pc = "1";
								$inicio=0; 
							}else {
								$pc = $pagina;
								$inicio = $pagina * $total_reg; // .
						
							}
									$limite = mysql_query("$x LIMIT ".$inicio.",".$total_reg) or die('A variável $limite apresentou o seguinte erro - '.mysql_error());
ele n da mensagem de erro, mas so apresenta os mesmos items......

e se mudo a variavel $x para $sql5

 

aparece isso:

" A variável $limite apresentou o seguinte erro - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5 LIMIT 0,10' at line 1 "

 

 

vo pos ali q o inicial recebe 0 por defaut.......e sempre iniciara suas busca por ai....

sera q n eh por isso q ele sempre pega os mxmos items???

 

ou estou enganado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... vou dar a minha opinião...

 

Começa de novo no teu script e separa todas as vezes que tem assim:

 

$limite = mysql_query("$sql5 LIMIT ".$inicio.",".$total_reg);

Por isto

 

$limite_sql = "$sql5 LIMIT ".$inicio.",".$total_reg";
$limite = mysql_query($limite_sql);

Quando precisar de novo da consulta, usa a $limite_sql e não a $limite.

 

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

refiz o script como você comentou...mas ele para sempre no mxm erro...ele fica no lupe de dados, e n mostras o produtos restantes.......

 

e depois q clico em proximo, ele alem de mostrar os mxm produtos n aparece o link de anterior como deveria.....

n sei se isso ajuda na descoberta do problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

quer saber,

 

esta variável -> "$x" está assim lá em cima

$x = mysql_query();

num é?

 

você está mandando de volta a consulta denovo que já foi consltada. (entendeu?)

retire "mysql_query();" da variavel "$x" e deixe o conteudo apenas "SELECT * FRO..."

Compartilhar este post


Link para o post
Compartilhar em outros sites

acabei de fazer as alterações onforme o recomendado mas o erro perciste....

sempre q clico para proxima pagina ele mostra os mesmos produtos da anterior.

 

=[[

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.