Ir para conteúdo

Arquivado

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

Carcleo

Paginação

Recommended Posts

Ola pessoal.

 

To com a paginação abaixo funcionando normal porem não mostra os links pra clikar tipo pagina 1, 2, 3 ..

 

Tentei reduzir o numero de resultado por paginas para 03.; Ele reduz certo mas não exibe os links.

 

O que sera que a errado?

<?php
if ($acao == "listar"){
  $Resultado = MySQL_query("SELECT * FROM devedores WHERE cliente='$id_cliente' and filial = '$SESSAOfilial' and baixa= 'N'");
  $conta = mysql_num_rows($Resultado);
  $lpp = 3; // Especifique quantos resultados você quer por página
  $paginas = ceil($total / $lpp); // Retorna o total de páginas
  if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada
   $inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL
  $Resultado = MySQL_query("SELECT * FROM devedores WHERE cliente='$id_cliente' and filial = '$SESSAOfilial' and baixa= 'N' LIMIT $inicio, $lpp");
  if ($conta == 0) { echo "Ainda não há devedores cadastrados para esta empresa";}
  ELSE			 {  

?>
<h2>Resultado da Busca </h2>
	<table>
	<tr>
		<td width="30">Id</td>			
		<td width="300">Nome / Fantasia (Razão)</td>
		<td width="150">CPF/CNPJ</td>
		<td width="30">Empresa</td>		
		<td align="center" width="100">Alterar</td>
		<td align="center" width="100">Exluir</td>		
		<td align="center" width="100">Lançamentos</td>		
	</tr>
<?php  
  $dados_cliente = mysql_query("SELECT * FROM clientes WHERE id='$id_cliente'");
  list($id_cliente, $cod_cliente, $pessoa_cliente, $fantasia_cliente, $nome_cliente, $rasao_cliente) = mysql_fetch_row($dados_cliente);
  while(list($id, $cod, $pessoa, $fantasia, $rasao, $cnpj, $ie, $nome, $cpf, $rg, $pai, $paicpf, $mae, $maecpf, $trabalho, $telp, $teltrabalho, $endereco,$numero, $complemento,  $bairro, $cidade, $uf, $cep, $email, $tel1, $tel2, $tel3, $potencial, $cliente, $filial, $baixa) = mysql_fetch_row($Resultado)) {
?>
	<tr>
		<td><?=$cod; ?></td>			
		<td><?=$nome; ?><?=$rasao; ?></td>
		<td align="right"><?=$cpf; ?><?=$cnpj; ?></td>
		<td align="center"><?=$id_cliente; ?></td>					
		<td align="center"><a href="?acao=editar&id=<?=$id; ?>&id_cliente=<?=$id_cliente; ?>"><img src="../imagens/site/edit.gif" alt="Modificar" border="0" hspace="5" /></a></td>
<? if ($baixa=="Sim"){ 
					 $baixa = "N"; 
					 $icone = "<img border=0 src=../imagens/site/desbloquear.ico>";
					}
else				{ 
					 $baixa = "S"; 
					 $icone = "<img border=0 src=../imagens/site/bloquear.gif>";					 
					}					
?>					
<script language="javascript">
<!--

function verifica()
{
var Msg = "Deseja alterar a condição de bloqueio do usuário?";
return confirm(Msg);
}

//-->
</script>
		<td align="center"><a href="cad_devedores.php?acao=baixar&id=<?=$id; ?>&baixa=<?=$baixa; ?>&id_cliente=<?=$id_cliente;?>&nome_cliente=<?=$nome_cliente;?><?=$rasao_cliente;?>" onclick='return verifica()'><?=$icone; ?></a></td>
		<td align="center"><a href="cad_lanca_devedores.php?id_devedor=<?=$id; ?>&id_cliente=<?=$id_cliente;?>&nome_cliente=<?=$nome_cliente;?><?=$rasao_cliente;?>&nome_devedor=<?=$nome?><?=$rasao?>"><img src="../imagens/site/edit.gif" alt="Lançamentos" border="0" hspace="5" /></a></td>		
	</tr>
<?	}
if($pagina > 0) {
   $menos = $pagina - 1;
   $url = "$PHP_SELF?acao=listar&pagina=$menos";
   echo "<a href=".$url.">Anterior</a>"; // Vai para a página anterior
}
for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas
   $url = "$PHP_SELF?acao=listar&pagina=$i";
   echo " | <a href=".$url.">$i</a>";
}
if($pagina < ($paginas - 1)) {
   $mais = $pagina + 1;
   $url = "$PHP_SELF?acao=listar&pagina=$mais";
   echo " | <a href=".$url.">Próxima</a>";
}

} ?>
	</table>
	<br /><br />	
<?	} ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei e não funciou.

Esperimentei colocar no link do navegador:

 

http://localhost/php/creditarassessoria.co...=1&pagina=2

 

aumetei o &pagina=2 pra ver e deu certo. Só não mostra os links das paginas pra clikar

Mas isso só acontece quando digo que vou querer 1 resultado por pagina e parece que a consulta fica bem lerda tb.

 

Mas, nesse outro script, funciona normal (por quie será?:

<?php
if ($acao == "listar"){
//Inicio da lista dos dados
$Sql = mysql_query("SELECT Id, Codigo, IdNomeProprietario, Imovel_Tipo, Endereco, Bairro, Cidade, Estado, Pais, Foto, Preco, Baixa, Descricao FROM ImoveisCadastroVenda where Baixa='N' order by Cidade, Imovel_Tipo, Bairro, Preco");
$total = mysql_num_rows($Sql); // Esta função irá retornar o total de linhas na tabela
$lpp = 15; // Especifique quantos resultados você quer por página
$paginas = ceil($total / $lpp); // Retorna o total de páginas
if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada
$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL
$Sql = mysql_query("SELECT Id, Codigo, IdNomeProprietario, Imovel_Tipo, Endereco, Bairro, Cidade, Estado, Pais, Foto, Preco, Baixa, Descricao FROM ImoveisCadastroVenda where Baixa='N' order by Cidade, Imovel_Tipo, Bairro, Preco LIMIT $inicio, $lpp");
	if ($total == "0") {?><tr><td colspan=12 bgcolor="#FFFFFF"><center><font color=red>=>Não foi encontrado nenhum imóvel para a sua pesquiza</font></center></td></tr><?php }
	else {?>
<tr><td colspan=12><center>
<b><font size=+2>Listagem dos imóveis para venda</font></b>
</center></td></tr>
<tr BGCOLOR="#CCCCCC">
<td><div align="center"><b>Código</b></div></td>
<td><div align="center"><b>Imóvel</b></div></td>
<td><div align="center"><b>Endereço</b></div></td>
<td><div align="center"><b>Bairro</b></div></td>
<td><div align="center"><b>Cidade</b></div></td>
<td><div align="center"><b>Estado</b></div></td>
<td><div align="center"><b>País</b></div></td>
<td><div align="center"><b>Foto</b></div></td>
<td><div align="center"><b>Preço</b></div></td>
<td><div align="center"><b>Detalhes</b></div></td></tr>

<?
while(list($Id, $Codigo, $IdNomeProprietario, $Imovel_Tipo, $Endereco, $Bairro, $Cidade, $Estado, $Pais, $Foto, $Preco, $Baixa, $Descricao) = mysql_fetch_row($Sql)) {
if ($Imovel_Tipo == "AP") {$Imovel_Tipo = "Apartamento";}
if ($Imovel_Tipo == "CA") {$Imovel_Tipo = "Casa";}
if ($Imovel_Tipo == "CH") {$Imovel_Tipo = "Chacara";}
if ($Imovel_Tipo == "FA") {$Imovel_Tipo = "Fazenda";}
if ($Imovel_Tipo == "LT") {$Imovel_Tipo = "Lote";}
if ($Imovel_Tipo == "SC") {$Imovel_Tipo = "Sala Comercial";}
if ($Imovel_Tipo == "ST") {$Imovel_Tipo = "Sítio";}
if ($Imovel_Tipo == "OU") {$Imovel_Tipo = "Outro";}
echo "
	  <tr BGCOLOR=#FFFFCC>
	  <td><font face=Arial size=-2><b>IV-". $Codigo ."</b></font></td>	  
	  <td align=center><font face=Arial size=-2><b>". $Imovel_Tipo ."</b></font></td>
	  <td><font face=Arial size=-2><b>". $Endereco ."</b></font></td>
	  <td><font face=Arial size=-2><b>". $Bairro ."</b></font></td>
	  <td><font face=Arial size=-2><b>". $Cidade ."</b></font></td>
	  <td align=center><font face=Arial size=-2><b>". $Estado ."</b></font></td>
	  <td align=center><font face=Arial size=-2><b>". $Pais ."</b></font></td>
	";
//aqui ele vai ver se existe alguma coisa escrita no campo foto_receita na tabela
if($Foto==""){
				 $foto2 = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto</strong></font>";
			 }
		else {
//se existir um valor no campo na tabela ele testa se a foto esxiste 'fisicamente' na pasta
			  if(file_exists("../imagens/upload/venda/miniaturas/$Foto")){
				 if(file_exists("../imagens/upload/venda/normais/$Foto")){
				 //se existir ele monta a exibição da foto e coloca numa variavel $foto2
				 $foto2 = "<img src=../imagens/upload/venda/miniaturas/$Foto border=0 width=50>";				 
				 list($width, $height) = getimagesize("../imagens/upload/venda/normais/$Foto"); 
				 if ($width > 780) {$width = 780;}
				 $foto2 = "<a href=java script:AbreImagemGrande('ImoveisVenda_Conteudo_con.php?Id=$Id','ImpNot','$width','$height')>$foto2</a>";
																			  }
																			 else{
//se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto
$foto2 = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto</strong></font>";
																				 }
																		   
																		   
																			 }
																			 else{
//se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto
$foto2 = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto</strong></font>";
																				 }
			 }
echo "
	  <td align=center>". $foto2 ."</td>
	  <td align=right><font face=Arial size=-2><b>R$". $Preco .",00</b></font></td>
	  <td align=center><a href='ImoveisVenda.php?acao=detalhes&id=". $Id ."&tabela=ImoveisCadastroVenda&pasta=". venda ."'><img border=0 src=../imagens/lupa.bmp></a></td>
	  </tr>
	";
}
if($pagina > 0) {
   $menos = $pagina - 1;
   $url = "$PHP_SELF?acao=listar&pagina=$menos";
   echo "<a href=".$url.">Anterior</a>"; // Vai para a página anterior
}
for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas
   $url = "$PHP_SELF?acao=listar&pagina=$i";
   echo " | <a href=".$url.">$i</a>";
}
if($pagina < ($paginas - 1)) {
   $mais = $pagina + 1;
   $url = "$PHP_SELF?acao=listar&pagina=$mais";
   echo " | <a href=".$url.">Próxima</a>";


}
}
}
  //Fim do envio dos dados
?></table>

Detalhe: rodando Localhost no meu apache

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já falei, isso: >>>>>>>>>>>>>>>>> $PHP_SELF só vai rodar em host local... em servidor profissional vai miar. tem que ser: $_SERVER['PHP_SELF'];

 

vai ter que trocar tudo... com certeza não aparece por o script está mal programado, como por exemplo o uso dessa variável ai que falei, e consequentemente deve ter mais algumas, por isso as falhas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta mas o script que te falei que rodandio certo.

Ta rodando tanto local quanto la nba net.

 

Mas esse que dando pau ta dando esse erro local.

Ainda não tentei na net.;

 

E esse que você m,e passou ta dando erro de encapsulamento

Compartilhar este post


Link para o post
Compartilhar em outros sites

parece que ta faltando informar os links (anterior - proximo) a primeira vez que abre pagina.

Tipo

 

if ($pagina == 0) {};

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema agora é outro.

Esse ja resolvi

O problema era que como copiei o script da ouitra pagina, a variavel que recebeu o mysql_num_rows la tinha outro nome.

 

Agor veja esasa linha:

$Resultado = mysql_query("SELECT * FROM devedores WHERE cliente='$id_cliente' and filial = '$SESSAOfilial' and baixa= 'N' order by cod");

Ele retorna os registros em ordem de codigo assim:

 

100
10
11
12
13
200
21
22
E eu precis assim:

10
11
12
13
21
30
80
99
100
200

Tem, jeito?

 

Outra coisa pra fechar com chave de ouro.

 

Fiz uma paginação dos registros dessa consulta.;

Porem, todas as paginações que vi até hoje começam na pagina 0. Tem jeito de começar na pagina 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só colocar o DESC

$Resultado = mysql_query("SELECT * FROM devedores WHERE cliente='$id_cliente' and filial = '$SESSAOfilial' and baixa= 'N' ORDER BY cod DESC");

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Des é ordem decrescente. Né não?

o QUE EU quero é que faça na ordem certa, 0, 1 ... 9, 10, 11, ... 19, 20 ... 100.

e o que esta aconmtecendo é: 0, 100, 10, 11, 12,...200, 20, 22 ...

 

Outra coisa pra fechar com chave de ouro.

 

Fiz uma paginação dos registros dessa consulta.;

Porem, todas as paginações que vi até hoje começam na pagina 0. Tem jeito de começar na pagina 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oh irmão, eu não to precisando de ordenar por ordem crescente ou decrescente não.

Né isso não!

 

O que eu to querendo é resoler o problema de o rergistro 100 aprecer antes do 10 e sim depois do 99.

 

Uma solução seria obrigar o cliente a digitar 001, 002, 011, 099, 100.

Ja viu o tranmstorno para o usuario final??

 

Poios é.

 

O que eui quero é que o cliente digite norsmalmente e na hora da ordenação saia assim:

 

1, 2, ......9 , 10, 11, ...99, 100. e não

1, 2, ......9 , 100, 10, 11, ...99, 101, 102.

 

Entendeu agora o que ta acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oh irmão, eu não to precisando de ordenar por ordem crescente ou decrescente não.

Né isso não!

 

O que eu to querendo é resoler o problema de o rergistro 100 aprecer antes do 10 e sim depois do 99.

 

Uma solução seria obrigar o cliente a digitar 001, 002, 011, 099, 100.

Ja viu o tranmstorno para o usuario final??

 

Poios é.

 

O que eui quero é que o cliente digite norsmalmente e na hora da ordenação saia assim:

 

1, 2, ......9 , 10, 11, ...99, 100. e não

1, 2, ......9 , 100, 10, 11, ...99, 101, 102.

 

Entendeu agora o que ta acontecendo?

Deveria ter explicado melhor desde o primeiro POST colega.

 

Você ta trabalhando com chave primária ? auto increment ? pois seria bem mais fácil, tudo automatizado, se não for isso, eu continuo sem entender "pra que" tu quer fazer isso.

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.