[PHP] limitare counter paginazione

Discussione in 'PHP' iniziata da Achille610@, 25 Agosto 2017.

  1. Achille610@

    Achille610@ Utente Attivo

    Registrato:
    18 Aprile 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    Ciao a tutti,
    uso da anni questa paginazione che ho trovato su mrwebmaster, e che dire mi trovo benissimo :) ora però avrei l'esigenza visto che i listati aumentano di limitare il numero delle pagine a 5, per evitare che se ci sono 100 pagine in un listato si vedano 100 i numeri da 1 a 100 perché anche esteticamente non è molto bello da vedere :(

    c'è qualcuno che l'ha già modificato e mi sa dire che devo fare ??

    Grazie mille

    Paginazione.php

    PHP:

    // definiamo la classe 
    class Paging 

    // definiamo la pagina di partenza 
    function paginaIniziale($max_row

    if ((!isset(
    $_GET['p'])) || ($_GET['p'] == "1")) 

    $parti_da 0
    $_GET['p'] = 1
    }else{ 
    $parti_da = ($_GET['p']-1) * $max_row

    return 
    $parti_da


    // contiamo le pagine e stabiliamo quanti records devono essere impaginati  
    function contaPagine($conta$max_row

    $pgg = (($conta $max_row) == 0) ? $conta $max_row floor($conta $max_row) + 1
    return 
    $pgg


    // mostriamo l'elenco delle pagine 
    function listaPagine($p_corrente$pgg

    $listapgg ""
    if ((
    $p_corrente != 1) && ($p_corrente)) 

    $listapgg .= " <a href=\"".SELF."?p=1\">Prima pag.</a> "

    if ((
    $p_corrente-1) > 0

    $listapgg .= "<a href=\"".SELF."?p=".($p_corrente-1)."\"><</a> "

    for (
    $i=1$i<=$pgg$i++) 

    if (
    $i == $p_corrente

    $listapgg .= "<b>".$i."</b>"
    }else{ 
    $listapgg .= "<a href=\"".SELF."?p=".$i."\">".$i."</a>"

    $listapgg .= " "

    if ((
    $p_corrente+1) <= $pgg

    $listapgg .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">></a> "

    if ((
    $p_corrente != $pgg) && ($pgg != 0)) 

    $listapgg .= "<a href=\"".SELF."?p=".$pgg."\">Ultima pag.</a> "

    $listapgg .= "</td>\n"
    return 
    $listapgg


    // permettiamo la navigazione per pagine precedenti e successive 
    function precedenteSuccessiva($p_corrente$pgg

    $impaginazione ""
    if ((
    $p_corrente-1) <= 0

    $impaginazione .= "Precedente"
    }else{ 
    $impaginazione .= "<a href=\"".SELF."?p=".($p_corrente-1)."\">Pag. precedente</a>"

    $impaginazione .= " | "
    if ((
    $p_corrente+1) > $pgg

    $impaginazione .= "Prossima"
    }else{ 
    $impaginazione .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">Prossima pag.</a>"

    return 
    $impaginazione


    ?>
     
  2. Achille610@

    Achille610@ Utente Attivo

    Registrato:
    18 Aprile 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    Non mi puoi aiutare nessuno :(
     
  3. bubino8

    bubino8 Utente Attivo

    Registrato:
    28 Aprile 2017
    Messaggi:
    318
    Mi Piace Ricevuti:
    18
    Punteggio:
    18
    Sesso:
    Maschio
    Località:
    BZ
    Ciao prova modificando cosi il ciclo for nella funzione listaPagine()
    Codice:
       
        if($p_corrente>$pgg){
            header("location: index.php?p=1");
        }
        elseif($p_corrente==1){
            $inizio = $p_corrente;
        }
        elseif($p_corrente==2){
            $inizio = $p_corrente-1;
        }
        elseif($p_corrente==$pgg-1){
            $inizio = $p_corrente-3;
        }
        elseif($p_corrente==$pgg){
            $inizio = $p_corrente-4;
        }
        else{
            $inizio=$p_corrente-2;
        }
        for ($i=1; $i<=5; $i++){
            if ($inizio == $p_corrente){
                $listapgg .= "<b>".$inizio."</b>";
                $inizio++;
            }
            else{
                $listapgg .= "<a href=\"".SELF."?p=".$inizio."\">".$inizio."</a>";
                $inizio++;
            }
            $listapgg .= " ";
        }
       
     
    Ultima modifica: 28 Agosto 2017
  4. Achille610@

    Achille610@ Utente Attivo

    Registrato:
    18 Aprile 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    ciao non so se ho capito bene, ho fatto cosi ma mi da errore :(

    PHP:

    // definiamo la classe 
    class Paging 

    // definiamo la pagina di partenza 
    function paginaIniziale($max_row

    if ((!isset(
    $_GET['p'])) || ($_GET['p'] == "1")) 

    $parti_da 0
    $_GET['p'] = 1
    }else{ 
    $parti_da = ($_GET['p']-1) * $max_row

    return 
    $parti_da


    // contiamo le pagine e stabiliamo quanti records devono essere impaginati  
    function contaPagine($conta$max_row

    $pgg = (($conta $max_row) == 0) ? $conta $max_row floor($conta $max_row) + 1
    return 
    $pgg


    // mostriamo l'elenco delle pagine 
    function listaPagine($p_corrente$pgg

     if(
    $p_corrente>$pgg){
            
    header("location: index.php?p=1");
        }
        elseif(
    $p_corrente==1){
            
    $inizio $p_corrente;
        }
        elseif(
    $p_corrente==2){
            
    $inizio $p_corrente-1;
        }
        elseif(
    $p_corrente==$pgg-1){
            
    $inizio $p_corrente-3;
        }
        elseif(
    $p_corrente==$pgg){
            
    $inizio $p_corrente-4;
        }
        else{
            
    $inizio=$p_corrente-2;
        }
        for (
    $i=1$i<=5$i++){
            if (
    $inizio == $p_corrente){
                
    $listapgg .= "<b>".$inizio."</b>";
                
    $inizio++;
            }
            else{
                
    $listapgg .= "<a href=\"".SELF."?p=".$inizio."\">".$inizio."</a>";
                
    $inizio++;
            }
            
    $listapgg .= " ";
        }

    if ((
    $p_corrente+1) <= $pgg

    $listapgg .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">></a> "

    if ((
    $p_corrente != $pgg) && ($pgg != 0)) 

    $listapgg .= "<a href=\"".SELF."?p=".$pgg."\">Ultima pag.</a> "

    $listapgg .= "</td>\n"
    return 
    $listapgg


    // permettiamo la navigazione per pagine precedenti e successive 
    function precedenteSuccessiva($p_corrente$pgg

    $impaginazione ""
    if ((
    $p_corrente-1) <= 0

    $impaginazione .= "Precedente"
    }else{ 
    $impaginazione .= "<a href=\"".SELF."?p=".($p_corrente-1)."\">Pag. precedente</a>"

    $impaginazione .= " | "
    if ((
    $p_corrente+1) > $pgg

    $impaginazione .= "Prossima"
    }else{ 
    $impaginazione .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">Prossima pag.</a>"

    return 
    $impaginazione


    ?>

     
  5. bubino8

    bubino8 Utente Attivo

    Registrato:
    28 Aprile 2017
    Messaggi:
    318
    Mi Piace Ricevuti:
    18
    Punteggio:
    18
    Sesso:
    Maschio
    Località:
    BZ
    Ciao,
    Io ho testato dallo script di base che hai trovato qua sul forum. Per caso hai effettuato qualche modifica al codice? variabili o funzioni?

    Magari hai inserito male cancellando una chiusura ; o }.

    Comunque questa è tutta la pagina completa:
    PHP:
    <?php
    // definiamo una costante per la pagina corrente
    define("SELF"$_SERVER['PHP_SELF']);

    // definiamo la classe
    class Paging
    {
    // definiamo la pagina di partenza
    function paginaIniziale($max_row)
    {
    if ((!isset(
    $_GET['p'])) || ($_GET['p'] == "1"))
    {
    $parti_da 0;
    $_GET['p'] = 1;
    }else{
    $parti_da = ($_GET['p']-1) * $max_row;
    }
    return 
    $parti_da;
    }

    // contiamo le pagine e stabiliamo quanti records devono essere impaginati
    function contaPagine($conta$max_row)
    {
    $pgg = (($conta $max_row) == 0) ? $conta $max_row floor($conta $max_row) + 1;
    return 
    $pgg;
    }

    // mostriamo l'elenco delle pagine
    function listaPagine($p_corrente$pgg)
    {
    $listapgg "";
    if ((
    $p_corrente != 1) && ($p_corrente))
    {
    $listapgg .= " <a href=\"".SELF."?p=1\">Prima pag.</a> ";
    }
    if ((
    $p_corrente-1) > 0)
    {
    $listapgg .= "<a href=\"".SELF."?p=".($p_corrente-1)."\"><</a> ";
    }
    if(
    $p_corrente>$pgg){
            
    header("location: index.php?p=1");
        }
        elseif(
    $p_corrente==1){
            
    $inizio $p_corrente;
        }
        elseif(
    $p_corrente==2){
            
    $inizio $p_corrente-1;
        }
        elseif(
    $p_corrente==$pgg-1){
            
    $inizio $p_corrente-3;
        }
        elseif(
    $p_corrente==$pgg){
            
    $inizio $p_corrente-4;
        }
        else{
            
    $inizio=$p_corrente-2;
        }
        for (
    $i=1$i<=5$i++){
            if (
    $inizio == $p_corrente){
                
    $listapgg .= "<b>".$inizio."</b>";
                
    $inizio++;
            }
            else{
                
    $listapgg .= "<a href=\"".SELF."?p=".$inizio."\">".$inizio."</a>";
                
    $inizio++;
            }
            
    $listapgg .= " ";
        }
    if ((
    $p_corrente+1) <= $pgg)
    {
    $listapgg .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">></a> ";
    }
    if ((
    $p_corrente != $pgg) && ($pgg != 0))
    {
    $listapgg .= "<a href=\"".SELF."?p=".$pgg."\">Ultima pag.</a> ";
    }
    $listapgg .= "</td>\n";
    return 
    $listapgg;
    }

    // permettiamo la navigazione per pagine precedenti e successive
    function precedenteSuccessiva($p_corrente$pgg)
    {
    $impaginazione "";
    if ((
    $p_corrente-1) <= 0)
    {
    $impaginazione .= "Precedente";
    }else{
    $impaginazione .= "<a href=\"".SELF."?p=".($p_corrente-1)."\">Pag. precedente</a>";
    }
    $impaginazione .= " | ";
    if ((
    $p_corrente+1) > $pgg)
    {
    $impaginazione .= "Prossima";
    }else{
    $impaginazione .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">Prossima pag.</a>";
    }
    return 
    $impaginazione;
    }
    }
    ?>

    Se non dovesse ancora funzionare scrivi l'errore che visualizzi su browser.
     
    A Achille610@ piace questo elemento.
  6. Achille610@

    Achille610@ Utente Attivo

    Registrato:
    18 Aprile 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    Ciao mi sa di si :)

    Funzionaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    Grazie mille sempre gentilissimo e molto competente .........
     
  7. bubino8

    bubino8 Utente Attivo

    Registrato:
    28 Aprile 2017
    Messaggi:
    318
    Mi Piace Ricevuti:
    18
    Punteggio:
    18
    Sesso:
    Maschio
    Località:
    BZ
    Ottimo;).
    Se ti sono stato d'aiuto mi piace gradito:D.
     
    A Achille610@ piace questo elemento.
  8. Achille610@

    Achille610@ Utente Attivo

    Registrato:
    18 Aprile 2017
    Messaggi:
    75
    Mi Piace Ricevuti:
    0
    Punteggio:
    6
    Sesso:
    Maschio
    Te ne ho messi 2 ma ne meriteresti davvero 10000000

    grazie mille
     
Sto caricando...

Condividi questa Pagina