Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 Boas, estou a trabalhar num backoffice e é a primeira vez que o faço sem utilizar o dreamweaver. Tenho a tabela que apresenta os registos e queria fazer a paginação dos registos mas não sei muito bem como. Alguém me pode dar uma ajuda com o código para isso? Tenho estado a utilizar o livro PHP 5.3 mas não estou a conseguir com o código que eles lá têm para esta situação. Desde já, agradeço. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Caya 0 Denunciar mensagem Publicado 6 de Junho de 2010 Esse livro está cheio de erros e penso que é péssimo em como expõem os problemas e os explica. Se queres um livro mesmo bom para aprender PHP do mais básico ao mais avançado, aconselho-te o PHP and MySQL Web Development se não tiveres problemas com inglês. Quanto à tua dúvida, vê se isto ajuda http://www.criarweb.com/artigos/192.php Se tiveres algum problema ou dúvida em algum sítio em especifico diz Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 Pois, eu sei que o livro têm erros, mas com algumas correcções aqui e ali tenho conseguido fazer o que quero a orientar-me por ai, até agora. Quando tiver tempo hei de ver então esse livro, vou agora tentar resolver isto, obrigado pela ajua. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 Também não consegui resolver com esse tutorial, até mesmo no exemplo que eles têm de demonstração aparecem erros. Se alguém puder ajudar. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Caya 0 Denunciar mensagem Publicado 6 de Junho de 2010 Mas onde exactamente estás a ter dificuldades? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 Agora com este tutorial não consegui fazer lá grande coisa, com o código do livro, php 5.3 com algumas alterações $pag = $_REQUEST['pag']; $php_self = $_SERVER['PHP_SELF']; if ($resultado) { $reg_pag=1; if (!$pag) { $pag=1; } $pag_ant=$pag-1; $pag_seg=$pag+1; $pag_ini=($reg_pag * $pag)-$reg_pag; $num_reg=mysql_num_rows($resultado)-1; if ($num_reg<=$reg_pag) { $num_pag=1; } else if (($num_reg % $reg_pag)==0) { $num_pag=$num_reg/$reg_pag; }else { $num_pag=$num_reg /$reg_pag + 1; } if (($pag_ant) && ($pag>1)) { echo "<a href=\"$php_self?pag=$pag_ant\">Anterior </a>|- "; } for ($i=1; $i<=$num_pag;$i++) { if($i !=$pag) { echo "<a href=\"$php_self?pag=$i\">$i</a>-| "; }else { echo"$i -| "; } } if ($pag+1 <$num_pag) { echo "<a href=\"$php_self?pag=$pag_seg\"> Seguinte </a>"; } } consigo que apareça a navegação e ao carregar passe o parametro correcto para o url no entanto os dados são sempre os mesmos em vez de aparecerem dados diferentes em diferentes paginas Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Caya 0 Denunciar mensagem Publicado 6 de Junho de 2010 O que é esse $resultado? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 $resultado = mysql_query($sql, $ligacao); Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 6 de Junho de 2010 e o q é q é o $sql e o $ligação? "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Caya 0 Denunciar mensagem Publicado 6 de Junho de 2010 Nesta caso só preciso saber o conteúdo do $sql e como o geras. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 $sql = "select * from noticia order by dataregisto desc"; o $ligação é o mysql_connect Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Caya 0 Denunciar mensagem Publicado 6 de Junho de 2010 Esse sql não pode ser estático, tem de ser gerado consoante a página. Fazes algo do genéro: $pagina = $_GET['pagina']; $noticias_por_pagina = 10; $limit = ($pagina - 1) * $noticias_por_pagina; $sql = "SELECT * FROM noticia ORDER BY dataregisto desc LIMIT $limit, $noticias_por_pagina"; $resultado = mysql_query($sql, $ligacao); Depois é só apresentares o resultado. O código que mostraste no início do tópico e apenas para gerar os links para navegar pelas páginas. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 Muito obrigado pela ajuda, tive a testar esse código, ainda fora da aplicação, mas penso que assim consigo o que quero. Fiz apenas umas alterações. $limit = ($pagina - 0) * $noticias_por_pagina; meti 0 em vez de 1 porque me dava erro quando ficava ?pagina=0, sendo que se for outro numero qualquer ja nao vai dar if (isset($_GET['pagina'])) $pagina = $_GET['pagina']; else $pagina = '0'; Aqui meti o isset porque quando se entre inicialmente na página não existe '?pagina' Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Caya 0 Denunciar mensagem Publicado 6 de Junho de 2010 Repara que não existem páginas zero O que deveria ser feito é o seguinte $limit = ($pagina - 1) * $noticias_por_pagina; e if ($_GET['pagina']) $pagina = $_GET['pagina']; else $pagina = 1; Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 Sim, assim também dá Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Cooper41 0 Denunciar mensagem Publicado 6 de Junho de 2010 Ai nao foi desta que isto deu por completo. Agora não consigo por a navegação a funcionar, o que antes já estava, se estiver na página 2 aparece-me link para a 1 e o link anterior mas não consigo que me apareçam mais links. if (isset($_GET['pag'])) $pag = $_GET['pag']; else $pag = '1'; $noticias_por_pagina = 2; $limit = ($pag - 1) * $noticias_por_pagina; $sql = "SELECT * FROM noticia ORDER BY dataregisto desc LIMIT $limit, $noticias_por_pagina"; $php_self = $_SERVER['PHP_SELF']; $resultado = mysql_query($sql, $ligacao); $php_self = $_SERVER['PHP_SELF']; while ($registo = mysql_fetch_array($resultado)) { $id = $registo["id"]; $titulodanoticia = $registo["titulodanoticia"]; echo ($id); } /*//////////navegação////////////*/ if ($resultado) { $reg_pag=1; if (!$pag) { $pag=1; } $pag_ant=$pag-1; $pag_seg=$pag+1; $pag_ini=($reg_pag * $pag)-$reg_pag; $num_reg=mysql_num_rows($resultado)-1; if ($num_reg<=$reg_pag) { $num_pag=1; } else if (($num_reg % $reg_pag)==0) { $num_pag=$num_reg/$reg_pag; }else { $num_pag=$num_reg /$reg_pag + 1; } $sql=$sql." limit $pag_ini,$reg_pag"; if (($pag_ant) && ($pag>1)) { echo "<a href=\"$php_self?pag=$pag_ant\">Anterior </a>|- "; } for ($i=1; $i<=$num_pag;$i++) { if($i !=$pag) { echo "<a href=\"$php_self?pag=$i\">$i</a>-| "; }else { echo"$i -| "; } } if ($pag+1 <$num_pag) { echo "<a href=\"$php_self?pag=$pag_seg\"> Seguinte </a>"; } } ?> APARTE: Usa o Geshi, torna o post mais apresentável. Vou tentar lembrar-me das próximas vezes. Entretanto, consegui resolver isto. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites