rippp Posted October 5, 2009 at 04:40 PM Report Share #290087 Posted October 5, 2009 at 04:40 PM boas.. tenho andado a tentar por a paginação a dar numa pagina e vou ai <?php require('sqlconect.php'); $pagiselect=("SELECT * FROM noticias ORDER BY data LIMIT '".$idi."','".$idf."'"); $pagiselect2 = mysql_query($pagiselect); $ttlsql = mysql_query('SELECT * FROM noticias'); $ttltr = mysql_num_rows($ttlsql); $ttlpag=ceil('$ttltr/20'); //para saber quantos links possiveis if ($ttlpag = 0){ $ttlpag== 1; } $numnot = 20; // noticias por pagina $pag = $_GET['pag']; //numero da pagina if (!isset($_SESSION['$pag'])){ $pag=1; //dar a primeira pagina de dados o numero 1 } $idi = ('($pag * 20)-($pag - 1) * 20)'); $idf = ('$pag * 20'); $numero_links = 5; // numero de links visiveis $pagant= ('$pag - 1'); $pagseg = ('$pag + 1'); echo ("pagina $pag de $ttlpag no total de $ttltr"); while ($dados = mysql_fetch_array($pagiselect2)) { $titul = $dados['titulo']; $corp = $dados['corpo']; echo (" $corp - $titul "); ?> <?php // criar variaveis para os links $linkant == $pag; // link anterior if ($linkant == 1) { $linkant == 1; } else { $linkant == ($pag - 1); } $linkprox == $pag; // link prox if ($linkprox >=$ttlpag){ $linkprox == $pag; } else { $linkprox == ($pag + 1); } ?> <?php }?> ja não consigo sair daqui. falta-me a parte dos links centrais, o fetch array nao fuciona. Ajuda era porreiro 😄 PS: ja passei isso pelo Geshi mas nada.. ja ponho bem Java, Android developerhttp://minimalcode.net Link to comment Share on other sites More sharing options...
cyclop Posted October 7, 2009 at 09:37 AM Report Share #290403 Posted October 7, 2009 at 09:37 AM Ora bem, para alem de teres o codigo muito desorganizado e nao estares a fazer da melhor forma, qual é a tua duvida? "Quando eu for grande quero ser como o Celso" Link to comment Share on other sites More sharing options...
softklin Posted October 7, 2009 at 09:45 AM Report Share #290404 Posted October 7, 2009 at 09:45 AM A função ceil que usas lá em cima, funciona? ceil('$ttltr/20') Quando muito, acho que devia estar entre aspas e não entre plicas (não tenho como testar daí a minha pergunta, e até pode ser uma causa de erro). Repara se o valor devolvido é o que pretendes. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
Guest id194 Posted October 7, 2009 at 11:00 AM Report Share #290410 Posted October 7, 2009 at 11:00 AM Já ha uns tempos deixei aqui um snippet de código para fazer isso... Procura no armazém de código (que acho que ainda existe). Link to comment Share on other sites More sharing options...
jcfr Posted October 7, 2009 at 11:21 AM Report Share #290411 Posted October 7, 2009 at 11:21 AM a uns tempos vi um sistema de paginação aqui no forum, já nao me lembro de quem era mas funciona perfietamente so tens de o adaptar ao que pretendes: <?php include "connections/mysqlconnect.php"; mysql_select_db ("$database_TestConnect") or die ("Impossivel ligar a base de dados"); if (!isset($_GET['pag'])){ //--------Se a página actual não estiver definida $pag = 1; //---------Passa a estar, e é apresentada como sendo a 1ª. }else{ //-------Se já estiver definida. $pag = $_GET['pag']; //-------Usa-se a página que é. } $linhas_por_pag = 8; //-------Estamos a dizer quantos registos serão apresentados por página. /*Definimos um principio para a busca na Base de Dados. Que será a página($pag) X a quantidade de registo por página($linhas_por_pag) menos a mesma quantidade($linhas_por_página)*/ $inicio = (($pag*$linhas_por_pag) - $linhas_por_pag); $sql = mysql_query("SELECT * FROM tabela LIMIT $inicio, $linhas_por_pag") or die (mysql_error()); ?> <?php //Vamos buscar os dados à base de dados e adicionamos à tabela criada while($row = mysql_fetch_array($sql)){ ?> Aqui listas os dados como pretendes <?php } ?> <?php $sqlt = "SELECT COUNT(*) as Num FROM automoveis WHERE `user`='$user' AND `tipo`='$tipo'"; $total_res = mysql_result(mysql_query($sqlt), 0); // Vamos saber o total de registos que existem na base de dados //$total_res = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM automoveis"), 0); // Vamos saber quantas páginas é que o total de registos dá e arredonda-se o total para cima(com ceil()), pra o resultado não seja 1.4 ou 2.32 $total_pag = ceil($total_res/$linhas_por_pag); // Vamos criar um link para as páginas anteriores à actual if ($pag > 1){ $anterior = ($pag-1); echo "<a class='normal' href=\"".$_SERVER['PHP_SELF']."?pag=$anterior\">Anterior </a>"; } for($i=1; $i <= $total_pag; $i++){ if(($pag) == $i){ echo "<font class='normal'><strong>$i</strong> </font>"; //-----O <strong> aplicado a $i dá ênfase à página que se visualiza. }else{ echo "<a class='normal' href=\"".$_SERVER['PHP_SELF']."?pag=$i\">$i </a>"; } } // Vamos criar um link para as páginas seguintes à actual if($pag < $total_pag){ $proximo=($pag+1); echo "<a class='normal' href=\"".$_SERVER['PHP_SELF']."?pag=$proximo\"> Próximo</a>"; } ?> espero que ajude APARTE: Usa o Geshi, fica mais apresentável. 👍 Link to comment Share on other sites More sharing options...
rippp Posted October 7, 2009 at 04:48 PM Author Report Share #290484 Posted October 7, 2009 at 04:48 PM o ceil funciona.. a minha duvida é como por os links a funcionar... Java, Android developerhttp://minimalcode.net Link to comment Share on other sites More sharing options...
jcfr Posted October 9, 2009 at 01:19 PM Report Share #290873 Posted October 9, 2009 at 01:19 PM o ceil funciona.. a minha duvida é como por os links a funcionar... o exemplo que te deixei em cima tens os links a funcionar, basei-te nele e adapta... entretanto, como ja tinha dito este sistema não é meu mas reparei que este sistema lista todas as páginas independentemente da quantidade de paginas a apresentar, no caso de teres 500 páginas vais ter 500 paginas apresentdas mais o anterior e o proximo, entretanto, por isso mesmo e porque a minha aplicação iria ter constantemente resultados com numeros elevados de páginas, alterei a aplicação para que, no caso de a consulta apresentar mais de 20 páginas apresentar apenas as duas primeiras, as duas ultimas, a actual e as 5 anteriores e posteriores... se estiveres interessado diz kk coisa... Link to comment Share on other sites More sharing options...
yoda Posted October 9, 2009 at 04:09 PM Report Share #290899 Posted October 9, 2009 at 04:09 PM Quando tiver tempo deixo na wiki do p@p um artigo sobre paginação em php before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now