Visualizzazione risultati 1 fino 21 di 21

Discussione: [php] Impaginazione dei record

  1. #1
    Guest

    Predefinito [php] Impaginazione dei record

    Ciao a tutti...
    Qualcuno sa darmi una mano ad impaginare dei record presi dal db, non riesco ad venirne a capo a far stampare i numeri delle pagine...

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Forse ti può essere d'aiuto questa guida:

    http://www.trickmaster.it/index2.php...o_pdf=1&id=520

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Sai darmi una mano...
    ti posto dove sono arrivato io...

    Codice PHP:
    $per_pagina = 3;
    $totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM post"));
    $totale = $totale_dati[0];
    $totale_per_pagina = ceil($totale/$per_pagina);
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale - 1)*$per_pagina;
    mysql_query("SELECT * FROM post ORDER BY id DESC LIMIT {$start}, {$per_pagina}");
    il problema è che non riesco a far stampare i numeri delle pagine...
    ho fatto una cosa del genere ma non è come lo desideravo io...
    Codice PHP:
    Pagina <?php echo (int)$_GET['pag']; ?> di <?php echo $totale_per_pagina; ?>
    <?php
    $avanti
    = $pagina_attuale + 1;
    $indietro = $pagina_attuale - 1;
    if(
    $pagina_attuale==1){ for($i = 1;$i<=5;$i++){ ?>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $i; ?>"><?php echo $i; ?></a></span>
    <?php } ?>
    <span class="pagina">...</span>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-4); ?>"><?php echo ($totale_per_pagina-4); ?></a></span>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-3); ?>"><?php echo ($totale_per_pagina-3); ?></a></span>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-2); ?>"><?php echo ($totale_per_pagina-2); ?></a></span>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo ($totale_per_pagina-1); ?>"><?php echo ($totale_per_pagina-1); ?></a></span>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $totale_per_pagina; ?>"><?php echo $totale_per_pagina; ?></a></span>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $avanti; ?>">Successiva>></a></span>
    <?php } ?>
    <?php
    if($pagina_attuale>1){ ?>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $indietro; ?>"><<Indietro</a></span>
    <?php for($i = 1;$i<=$totale_per_pagina;$i++){ ?>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $i; ?>"><?php echo $i; ?></a></span>
    <?php } ?>
    <span class="pagina"><a href="<?php echo $_SERVER["PHP_SELF"]; ?>?pag=<?php echo $avanti; ?>">Successiva>></a></span>
    <?php } ?>

  4. #4
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

  5. #5
    Guest

    Predefinito

    Si lo letta ci sono quasi, ma non riesco ad fare come vorrei fare io...
    Dovrei stampare il numero delle pagine in questo modo.

    esempio
    Se lo consideri spam lo puoi togliere
    http://www.torgo.com/blog/page/16
    se vai avanti e indietro ti puoi fare un idea, non so come spiegarlo...

  6. #6
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

  7. #7
    Guest

    Predefinito

    il codice lo scritto ma non riesco ad fare come ti ho mostrato nel link di prima...
    quello che dici tu stampa
    precedente |page1|page2|ecc. successivo
    io vorrei fare si in questo modo ma non che mi stampi tutti i numeri delle pagine fino alla fine, ma che me le mostri di conseguenza come ti ho fatto notare nel link precedete....

  8. #8
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    scusa per il ritardo della risposta, ma non potevo proprio rispondere.

    Purtroppo il metodo che te dici credo di non saperlo fare, quindi non ti potrei aiutare con il codice, ma puoi vedere qui::

    http://php.html.it/articoli/leggi/85...one-di-dati/4/

    Se non sbaglio te vuoi applicare il secondo metodo indicato nell'articolo
    Ultima modifica di sevenjeak : 20-07-2010 alle ore 19.26.19

    Sevenjeak
    Software developer and much more

  9. #9
    Guest

    Predefinito

    su per giù e la stessa cosa postata da andreafallico...

  10. #10
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Se ho capito bene, prova questo:
    il codice
    Codice PHP:
    for ($i = 1; $i <= $pager->numPages; $i++) {
    echo
    " | ";
    if (
    $i == $pager->page)
    echo
    "Page $i";
    else
    echo
    "<a href=\"thepage.php?page=$i\">Page $i</a>";
    }
    sostituiscilo con questo:
    Codice PHP:
    $max = (($pager->page + 2) > $pager->numPages) ? $pager->numPages : $pager->page + 2;
    $min = (($pager->page - 2) < 1) ? 1 : $pager->page - 2;
    for (
    $i = $min; $i <= $max; $i++) {
    echo
    " | ";
    if (
    $i == $pager->page)
    echo
    "Page $i";
    else
    echo
    "<a href=\"thepage.php?page=$i\">Page $i</a>";
    }
    Ultima modifica di andreafallico : 20-07-2010 alle ore 21.08.51

  11. #11
    Guest

    Predefinito

    non funziona da errore nel for...
    lo script lo modificato cosi....
    Codice PHP:
    <?php
    include 'impostazioni_blog.php';
    $per_pagina = 1;
    $totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM post"));
    $totale = $totale_dati[0];
    $totale_pagine = ceil($totale/$per_pagina);
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;

    mysql_query("SELECT * FROM post ORDER BY id DESC LIMIT {$start}, {$per_pagina}");
    if(
    $pagina_attuale>0 AND $pagina_attuale<=$totale_pagine){
    echo (
    $pagina_attuale == 1) ? "Indietro\n" : '<a href="?pag=1">Prima Pagina</a>'."\n".'<a href="?pag='.($pagina_attuale-1).'">Indietro</a>'."\n";


    for(
    $i = 1;$i<=$totale_pagine;$i++){
    echo
    " | ";
    echo (
    $i == $pagina_attuale) ? "$i\n" : '<a href="?pag='.$i.'">'.$i.'</a>'."\n";
    }

    echo (
    $pagina_attuale == $totale_pagine) ? " Successivo\n" : ' <a href="?pag='.($pagina_attuale+1).'">Successivo</a>'."\n".' <a href="?pag='.$totale_pagine.'">Ultima Pagina</a>'."\n";
    }
    ?>

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Qual è l'errore?
    Lo script che ti ho postato, se sei nella pagina 10, visualizza:

    Codice:
    precedente | page 8 | page 9 |  page 10 | page 11 | page 12 | successivo

  13. #13
    Guest

    Predefinito

    postalo cosi vedo dove sbaglio....

  14. #14
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Ho preso il codice qui: http://www.webmasterpoint.org/php/tutorial/59.asp, e ho modificato questo:
    Codice PHP:
    for ($i = 1; $i <= $pager->numPages; $i++) {
    echo
    " | ";
    if (
    $i == $pager->page)
    echo
    "Page $i";
    else
    echo
    "<a href=\"thepage.php?page=$i\">Page $i</a>";
    }
    in questo:
    Codice PHP:
    $max = (($pager->page + 2) > $pager->numPages) ? $pager->numPages : $pager->page + 2;
    $min = (($pager->page - 2) < 1) ? 1 : $pager->page - 2;
    for (
    $i = $min; $i <= $max; $i++) {
    echo
    " | ";
    if (
    $i == $pager->page)
    echo
    "Page $i";
    else
    echo
    "<a href=\"thepage.php?page=$i\">Page $i</a>";
    }
    Ultima modifica di andreafallico : 20-07-2010 alle ore 21.09.22

  15. #15
    Guest

    Predefinito

    Dimmi dove sbaglio allora...
    Codice PHP:
    <?php
    include 'impostazioni_blog.php';
    $per_pagina = 1;
    $totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id) FROM post"));
    $totale = $totale_dati[0];
    $totale_pagine = ceil($totale/$per_pagina);
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;

    mysql_query("SELECT * FROM post ORDER BY id DESC LIMIT {$start}, {$per_pagina}");
    if(
    $pagina_attuale>0 AND $pagina_attuale<=$totale_pagine){
    echo (
    $pagina_attuale == 1) ? "Indietro\n" : '<a href="?pag=1">Prima Pagina</a>'."\n".'<a href="?pag='.($pagina_attuale-1).'">Indietro</a>'."\n";

    $max = (($pagina_attuale+2) > $totale_pagine) ? $totale_pagine : ($pagina_attuale+2);
    $min = (($pagina_attuale-2) < 1) ? 1 : ($pagina_attuale-2);
    for(
    $i=$min;$i<=$max;i++){
    echo
    " | ";
    echo (
    $i == $pagina_attuale) ? "$i\n" : '<a href="?pag='.$i.'">'.$i.'</a>'."\n";
    }

    echo (
    $pagina_attuale == $totale_pagine) ? " Successivo\n" : ' <a href="?pag='.($pagina_attuale+1).'">Successivo</a>'."\n".' <a href="?pag='.$totale_pagine.'">Ultima Pagina</a>'."\n";
    }
    ?>

  16. #16
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Ti ritorna qualche errore? Posta il link della pagina.

  17. #17
    Guest

    Predefinito

    Lo sto provando in locale...
    Parse error: syntax error, unexpected T_INC, expecting ')'

  18. #18
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Almeno scrivilo tutto l'errore e soprattutto il numero della linea.

  19. #19
    Guest

    Predefinito

    on line 16
    Ultima modifica di hotmailpower : 20-07-2010 alle ore 20.48.22

  20. #20
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Hai dimenticato di mettere il dollaro: anziché $i++ hai scritto i++.

  21. #21
    Guest

    Predefinito

    errore di distrazione, ma sorge un problema cosa dovrei fare in modo da stampare in questo modo....
    precedente |1 |[...] | page 8 | page 9 | page 10 | page 11 | page 12 | [...] |18|successivo

Regole di scrittura

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