Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500

    Help divisione in pagine

    Salve,
    ho già creato un sistema per poter visualizzare una lsita di articoli in pagine, ora il problema nasce poichè se ho 50 pagine tramite un for lui mi visualizza tutte e 50 le pagine..

    Vorrei fare in modo che:
    Se la pagina è 1,2,3,4 mi visualizzi 1 2 3 4 5 ... 50
    Se la pagina è 5 mi visualizzi anche la 6 oltre a quelle già presenti
    Se la pagina è 7 mi visualizzi 1 .. 5 6 7 8 9 ... 50
    Se la pagina è 30 mi visualizza la 1 ... 28 29 30 31 32 ... 50

    Come faccio a fare una cosa simile?

  2. #2
    Cerca nel forum, o in google, con la parola chiave "paginazione dati".
    Ci sono un sacco di script già pronti che puoi adattare alle tue esigenze.

    Se cerchi nella sezione ARTICOLI del sito, invece, trovi questo interessante tutorial.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Quello di html non mi piace molto poichè non escono le pagine bensi solo prec o succ...

    Ora cerco e poi ti dico


    Grazie per ora

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Ho cercato e i risultati sono come mi aspettavo,

    tutti usano un for e mette tutte le pagine invece io voglio che si vedano solo le pagine vicine...
    e non tutte....

  5. #5
    dico la mia...

    se la pagina che visualizzi è passata tramite get ad esempio:

    pagine.php?pag=5

    puoi fare un ciclo di for in questo modo

    Codice PHP:
    $wiev=$_GET['pag];
    $start=$wiev-2;
    $end=$wiev+2;

    for($i=$start;$i<=$end;$i++)
      {
      echo $i;
      } 

  6. #6
    Ma scusa eh: se ti servono solo le pagine adiacenti quella visualizzata, ti basta creare due variabili:

    Codice PHP:
    $pag $_GET['pag'];
    $prev $pag 1;
    $succ $pag 1
    Per il resto la logica di funzionamento del paginatore è la stessa.
    Dove sarebbe il problema???

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    No io non voglio solo quelli, quelli li ho già :P

    Voglio la logica che non ho trovato negli esempi...

  8. #8
    La logica è semplice e piuttosto chiara negli esempi!

    Devi limitare la query ad un numero X di righi.
    Se per esempio, vuoi visualizzare la pagina 3 della query, con 10 risultati per pagina, vuoi visualizzare i righi che andranno dal numero 30 al numero 40.
    OK?

    Per cui non devi fare altro che impostare il LIMIT della query al numero della pagina moltiplicato i righi per pagina come limite minimo, mentre come massimo aggiungi a questo numero il valore di 10.

    Per capirci:
    Codice PHP:
    $pag $_GET['pag']; 
    $prev $pag 1
    $succ $pag 1;

    $limit_min = ($pag 10);
    $limit_max $limit_min 10;

    $sql "SELECT * FROM tabelle WHERE [....] LIMIT $limit_min$limit_max"
    Spero di essere stato chiaro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Non hai capito... o forse mi sono spiegato male io....

    Io riesco a fare comparire tutto correttamente, numero di elementi per pagina e numero di pagine cosi..


    Io invece le voglio in questo stile



    Come faccio?

  10. #10
    Non è difficile.
    L'ultima pagina la ricavi con la funzione CEIL, suppongo!
    Tu sai qual'è la pagina corrente (prelevata via $_GET) e quella finale.


    Codice PHP:
    $pag $_GET['pag']; 
    $prev $pag 1
    $succ $pag 1;
    $ini 1;
    $ini2 2;
    $center_left1 $pag 1;
    $center_left2 $center_left1 1;
    $center_right1 $pag 1;
    $center_right2 $center_right1 1;

    $end xxx// questo lo calcoli suppongo con il CEIL applicato
    // al numero di risultati diviso il numero di righi per pagina 
    $end2 $end 1;

    $menu "
    <a href =\\"
    pagina.php?pag=$prev\\">Precedente</a>
    <a href =\\"
    pagina.php?pag=$ini\\">$ini</a>
    <a href =\\"
    pagina.php?pag=$ini2\\">$ini2</a>
     [....] 
    <a href =\\"
    pagina.php?pag=$center_left2\\">$center_left2</a>
    <a href =\\"
    pagina.php?pag=$center_left1\\">$center_left1</a>
     
    $pag 
    <a href =\\"
    pagina.php?pag=$center_right1\\">$center_right1</a>
    <a href =\\"
    pagina.php?pag=$center_right2\\">$center_right2</a>
     [....] 
    <a href =\\"
    pagina.php?pag=$end2\\">$end2</a>
    <a href =\\"
    pagina.php?pag=$end\\">$end</a>
    <a href =\\"
    pagina.php?pag=$succ\\">Successivo</a>
    "

    Naturalmente puoi automatizzare la procedura in una funzione o simili, ma questo è (a mio avviso) un buon esempio di script.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.