Carcleo 4 Denunciar post Postado Junho 28, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Junho 28, 2008 no lugar de : $PHP_SELF utilize: $_SERVER['PHP_SELF']; Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 28, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Junho 28, 2008 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
Carcleo 4 Denunciar post Postado Junho 28, 2008 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
Carcleo 4 Denunciar post Postado Junho 29, 2008 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
Carcleo 4 Denunciar post Postado Junho 29, 2008 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 22E 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
Alaerte Gabriel 662 Denunciar post Postado Junho 29, 2008 É 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
Carcleo 4 Denunciar post Postado Junho 29, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Junho 29, 2008 É só trocar de DESC para ASC cara. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 30, 2008 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
Alaerte Gabriel 662 Denunciar post Postado Junho 30, 2008 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