Visualizzazione risultati 1 fino 1 di 1

Discussione: Problema con paginazione quando record inesistenti

  1. #1
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito Problema con paginazione quando record inesistenti

    Ciao

    Attraverso un form invio dei dati sia per eseguire un'operazione sia per poi ritornare alla stessa pagina dove sono state fatte le selezioni:
    Il codice che si occupa della paginazione è questo:

    Codice PHP:
    .................
    $webpage = basename($_SERVER['PHP_SELF']);
    $page = (!isset($_GET['page']))? 1 : $_GET['page'];
    $max_results = 5;//numero di elementi da visualizzare per pagina.

    $risultato = mysql_query($tutto);
    $total_results = mysql_num_rows($risultato);

    $total_pages = ceil($total_results / $max_results);
    $from = (($page * $max_results) - $max_results);


    $tutto.=" LIMIT $from, $max_results";
    $querylim = mysql_query ($tutto);

    ...................

    <td height="30" colspan="2" align="center" id="row18">
    <?
    echo pagination_31($total_pages, $page, $webpage);$checkscad);
    ?>


    la funzione di paginazione richiamata nell'include (ne ho fatte anche delle varianti ma sostanzialmente funzionano tutte nello stesso modo):

    Codice PHP:
    function pagination_31($total_pages,$page,$webpage){ //imposto la mia $webpage come parametro formale

    $pagination = "";
    if(
    $total_pages!=1){
    if(
    $page>'1')
    {
    $pagination.="<a href=".$webpage."?page=1> << </a>
    <a href="
    .$webpage."?page=".($page-1)."> Indietro </a>";
    }

    //Impostiamo il massimo numero di links di partenza da visualizzare nella pagina.
    $maximum_links = 5;

    //Se sono necessarie meno pagine rispetto al numero massimo
    if($total_pages<=$maximum_links)
    {
    //Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1
    $maximum_links = $total_pages+1;
    }
    //Se ne sono necessarie di piu, allora:
    else{
    //$maximum_links +1
    $maximum_links=$maximum_links+1;
    if(
    $page>=$maximum_links){
    $maximum_links=$page+1;
    }
    }


    //next e ultima pagina;

    if(($page >="1")&&($page!=$total_pages)){
    $pagination.= "<a href=".$webpage."?page=".($page+1)."> Avanti </a>
    <a href="
    .$webpage."?page=".$total_pages."> >> </a>";
    }

    }
    else{
    $pagination.="";
    }
    return(
    $pagination);

    }
    Per ritornare alla stessa pagina invio anche una variabile con il numero di pagina richiamato da $_GET['page'].

    Funziona tutto bene fino a quando nella pagina successiva non ci sono più dati
    (quando esistono invece i record vengono scalati).
    In questo caso viene stampato il numero di pagina senza record.
    Cosa posso fare secondo voi per risolvere il problema?

    Grazie
    Ultima modifica di gianlucaweb : 26-01-2011 alle ore 20.56.29

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •