Ir para conteúdo

POWERED BY:

Arquivado

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

Menegat

[Resolvido] paginação

Recommended Posts

Ola pessoal.....

bom...estou com uma duvida qnto a scrit de paginação.....encontrei varios scripts na net, mas todos com o mxm erro.

bom sou novo no php...e estou tentano criar um sistemas sozinhoo..mais pelo aprendizado.....tbm devo dizer q n entendi mto o funcionamenrto do codigo....mas espero q esse n seja o erro...xD

vou postar o codigo e o erro...Jah procurei no forum..mas tbm....qndo implementava o codigo ele ficava sempre no mxm erro.

 

agradeço as ajudas desde jah....

$total_reg = "10"; // número de registros por página
							
							if (!$pagina) {
								$pc = "1";
							} else {
								$pc = $pagina;
							}
							
							$inicio = $pc - 1;
							$inicio = $inicio * $total_reg;
							
							$limite = mysql_query("$sql5 LIMIT $total_reg");
							$todos = mysql_query($sql5);
							
							$tr = mysql_num_rows($sql5); // 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($limte)){
									$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>";
							}	
							}								
							
						echo $msg;
				?>

e o erro q aparece eh este...:" Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\marcelo\executtiva\busca.php on line 267

| Próxima -> "

 

=´´[[[[

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok..

 

ai esta ela...

$sql5 = mysql_query("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"]."'" );

xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca assim

$sql5 = mysql_query("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"]."'" ) or die(mysql_error());

Posta o que aparecer

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro eh sempre o mxm...

 

e o erro q aparece eh este...:" Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\marcelo\executtiva\busca.php on line 267

| Próxima -> "

 

desculpa a demora...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim

 

Todas as vezes que tiver a função mysql_query, você faz como no exemplo abaixo.

$todos = mysql_query($sql5) or die('A variável $todos apresentou o seguinte erro - '.mysql_error());

Onde você vai trocar o nome da variável. Tem alguma query sua que está apresentando erro, e por isto não envia os dados para o mysql_fetch_array. Daí ele dispara este warning. Assim, como eu te falei, vai exibir na tela em qual das querys que está o erro.

 

Poste o erro que vai exibir e a query correspondente.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

\o\.... Carlos.....

 

pus em todo os querys da paginação oq você me pedio...

 

o erro agora eh esse:

 

" 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 10' at line 1 "

 

isso eh mto ruim??

 

AUHSUAsh...

cara so uma duvida.....o esquema de montagem da paginação esta correto pelo menos??

 

abrass

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca isso:

$limite = mysql_query("$sql5 LIMIT $total_reg");
no mínimo precisa concatenar isso.

para ficar claro:

$sql_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"]."'";
$sql5 = mysql_query($sql_sql5);


$sql_limite = $sql_sql5." LIMIT {$total_reg} ";
echo $sql_limite;
$limite = mysql_query( $sql_limite )or die('A variável $limite apresentou o seguinte erro - '.mysql_error());;
O erro foi, q você concatenou o resource, qndo deveria concatenar a string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja que o erro que eu coloquei foi para exibir em qual das querys estava o erro. Olha o erro

 

" 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 10' at line 1 "

 

O que tem na variável limite?

$limite = mysql_query("$sql5 LIMIT $total_reg");

O que nos leva a algumas perguntas...

 

- $sql5 vem de onde? Qual o conteúdo dela?

- $total_reg vem de onde? qual o conteúdo dela?

 

Responda a primeira parte da pergunta. A segunda vamos responder assim:

echo 'O conteúdo da variável $limite é '.$limite;
echo '<br/>O conteúdo da variável $total_reg é '.$total_reg;
//$limite = mysql_query("$sql5 LIMIT $total_reg"); coloca o comentário na frente desta linha. Pra ver se tem outro erro.

Coloca isto e posta o resultado. Posta também a parte onde são criadas estas 2 variáveis.

 

Com relação ao esquema de montagem a princípio está OK.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Feraa....

 

fiz as alterações.....tirei aquela linah q você falou estar errada e postei as 3 novas como voce explicou... xD

olha oq aparece...

 

"Resource id #5 LIMIT 10 A variável $todos 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 10' at line 1 "

 

 

 

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postamos ao mesmo tempo.

Verifique oq eu disse aqui:

http://forum.imasters.com.br/index.php...t&p=1317686

 

Olha a string:

'Resource id #5 LIMIT 10' tá claro, q você tá colocando o resource e não a string na query do $limite.

Muda lá o $sql5.. e o $limite.. como eu disse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja que o erro que eu coloquei foi para exibir em qual das querys estava o erro. Olha o erro

 

" 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 10' at line 1 "

 

O que tem na variável limite?

$limite = mysql_query("$sql5 LIMIT $total_reg");

O que nos leva a algumas perguntas...

 

- $sql5 vem de onde? Qual o conteúdo dela?

- $total_reg vem de onde? qual o conteúdo dela?

 

Responda a primeira parte da pergunta. A segunda vamos responder assim:

echo 'O conteúdo da variável $limite é '.$limite;
echo '<br/>O conteúdo da variável $total_reg é '.$total_reg;
//$limite = mysql_query("$sql5 LIMIT $total_reg"); coloca o comentário na frente desta linha. Pra ver se tem outro erro.

Coloca isto e posta o resultado. Posta também a parte onde são criadas estas 2 variáveis.

 

Com relação ao esquema de montagem a princípio está OK.

 

Carlos Eduardo

 

a variavel $total_reg recebe a qntidade de item q devera apresentar por pagina.......

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

a variavel limite recebe os itens da varial $sql5 q possui todos os dados da busca feita......

$sql5 = mysql_query("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"]."'" );

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja que aqui é o que o Willian falou.

Olha a string:

'Resource id #5 LIMIT 10' tá claro, q você tá colocando o resource e não a string na query do $limite.

Muda lá o $sql5.. e o $limite.. como eu disse.

Veja que aqui, para funcionar como você está fazendo, você teria que passar o SELECT, e não o resultado da query. Mais ou menos assim:

 

$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);

E lá no outro, você troca $sql5 por $x.

 

Entendeu mais ou menos?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

willian fiz como você falo...mas ainda acho q me perdi na sua explicação.....

 

bom na busca eu fiz assim....

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

 

e na parte de paginação e exibição assim.......

<?php
	

							$total_reg = "10"; // número de registros por página
							
							if (!$pagina) {
								$pc = "1";
							}else {
								$pc = $pagina;
							}
							
							$inicio = $pc - 1;
							$inicio = $inicio * $total_reg;
							
							$sql_limite = $sql5." LIMIT {$total_reg} ";
							echo $sql_limite;
							$limite = mysql_query( $sql_limite )or die('A variável $todos apresentou o seguinte erro - '.mysql_error());
							

							$todos = mysql_query($sql5) or die('A variável $todos apresentou o seguinte erro - '.mysql_error());
							
							$tr = mysql_num_rows($sql5); // 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>";
							}	
							}						
							
						echo $msg;
				?>

acho q com o codigo todo fica mais facil pra eu mostrar oq estou fazendo e para me ajudarem.....como sou novo nisso estou me atrapalhando com facilidade...

 

se puderem fazer a alterações no codigo em outra cor..acho q ficaria ate masi facil pra mim entender.....

xDD

 

tipo como se vcs estivecem desenhando...

xDD

e desculpe minha ignorancia em php......

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

carlos...

funcinou, mas....

veja so....

ele agora ele mostra os 10 por pagina como o especificado......

 

mas antes da lista de itens ele mostra essa mensagem:

erro solucionado..avia um echo para mostar a variavel..(" select * from produtos where Categoria = '11' LIMIT 10 ")

 

e qndo clico no link para proxima pagina criada para mostrar o resto da busca ele mostra isso:

" 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

os erros estão dando na query sql...

 

vi que você não usa um padrão no nome das variáveis e campos, como por exemplo:

Categoria = '".$_GET["campo_Tipo"]."' AND produtos_dorm = '".$_GET["campo_Dorm"]."'  AND produtos_bairro = '".$_GET["campo_Bairro"]."' AND produtos_faixa = '".$_GET["campo_Faixa"]."'";
Categoria, campo_Tipo, produtos_dorm, campo_Dorm, etc..

Pelo que eu percebi, os "campos" você usa sempre com minúsculas: produtos_dorm, produtos_bairro e produtos_faixa , mas o campo "Categoria" está com inicial maiúscula.

 

Sei que é meio bobinho, mas o erro pode estar aí.

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.