Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    4

    Paginazione delle news con PHP

    ciao a tutti, sono alle prime armi con il PHP.
    Volevo dividere le news del mio sito in pagine e navigando in internet sono riuscito a fare questo codice:


    <?php
    //file di testo
    $fp = fopen('prova.txt', 'r'); //Apro il file prova.txt in lettura, lo creo se non esiste



    $mess_per_pag=2;
    $frase="ç";


    //conteggio delle news nel file di testo.
    $tot_messaggi=0;
    $var2=file("prova.txt");//estraggo l'array dal file .txt
    $k=count($var2);//conto gli elementi nell'array
    for($i=0;$i<$k;$i++){
    if(trim($var2[$i])==$frase)
    $tot_messaggi++;
    }


    $tot_pagine=ceil($tot_messaggi/$mess_p…



    if(isset($_GET['pagina'])) //controllo ke nell'url esista la pagina
    {
    $pagina=$_GET['pagina']; //do alla variabile pagina il valore della pagina su cui mi trovo
    }
    else{
    $pagina=1;
    }


    le pagine vengono create, e anke i link ad esse ma non so proprio come fare per scrivere dentro ad ogni pagina...
    le news sono precedute da un "ç", quindi vengo contati gli "ç" per contare le news. il massimo numero di messaggi x pagina è di 2 ( c'è la variabile apposta).

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    4
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    4
    up

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    4
    up

  5. #5
    Guarda io le news di solito le inserisco in un file XML e faccio il parsing in PHP (SimpleXML è ottimo per la lettuda).

    L'impaginazione la faccio attraverso la classe Pager PHP che la trovi in rete.
    E' nata x ricevere dati da SQL ma la ho riadattata a XML.

    funziona bene, poi se trovi bug o qualcosa ( io nn ne ho avuti fammi sapere).

    L'unica cosa è che te la devi adattare


    <?php
    include('library/pagerclass.php');

    //LEGGO XML

    $datexml="xml/date.xml";
    $xml = simplexml_load_file( $datexml );
    $eventi= array();
    $k=0;

    foreach($xml->evento as $evento){ //inserisco gli elementi XML in un array
    $eventi[$k]= $evento;
    $k++;
    }

    //SETTO I PARAMETRI DEL PAGER
    $page =(isset($_GET['page']))?$_GET['page']: 1;
    $limit = 4; //LIMITE NEWS PER PAGINA
    $total = count($eventi); //TOTALI EVENTI

    $pager = Pager::getPagerData($total, $limit, $page);

    $limit = $pager->limit;
    $page = $pager->page;

    //MODIFICA PER LEGGERE GLI XML AL PUNTO GIUSTO
    $start = ($page-1)*$limit; //inizializzo il punto di partenza di $i a seconda dela pagina in cui si trova
    $stop = $page*$limit; //inizializzo il punto di arrivo di $i a seconda dela pagina in cui si trova
    $i=$start;
    while( $i<$stop && $i<$total){ //condizioni per evitare errori di visualizzazione nel caso in una pagina ci siano meno di $limit elementi

    ?>

    //QUI SETTI LA TUA VISUALIZZAZIONE

    <li class="evento">


    <?php echo ''.$eventi[$i]->data.'';?>

    <span class="titlealbumdate"><?php echo ''.$eventi[$i]->titolo.'';?></span>
    </p>
    <?php echo ''.$eventi[$i]->testo.'';?>

    <?php
    $i++;
    }

    // PIE PAGINA VISUALIZZA I LINK DELLE PAGINE

    print(" <li id='pagine'>");

    for ($i = 1; $i <= $pager->numPages; $i++) {
    if ($i == $pager->page)
    print "<span style='color:#FF0000'>$i</span>";
    else
    print "$i";
    print "|";
    }

    print " ";
    ?>

    CLASSE PHP PAGER

    <?php
    class Pager
    {
    function getPagerData
    ($numHits, $limit, $page)
    {
    $numHits = (int) $numHits;
    $limit = max((int) $limit, 1);
    $page = (int) $page;
    $numPages = ceil
    ($numHits / $limit);

    $page = max($page, 1);
    $page = min($page, $numPages);

    $offset = ($page - 1) * $limit;

    $ret = new stdClass;

    $ret->offset = $offset;
    $ret->limit = $limit;
    $ret->numPages = $numPages;
    $ret->page = $page;

    return $ret;
    }
    }
    ?>

    ciao caso mai fammi sapere se ti va o che ti serve

    solo che devi farti un file xml

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.