Visualizzazione risultati 1 fino 8 di 8

Discussione: visualizzare 10 pagine per volta nella paginazione

  1. #1
    Guest

    Predefinito visualizzare 10 pagine per volta nella paginazione

    Ciao a tutti, io ho un problema che è sorto dopo aver fatot la paginazione ovvero che avendo troppi risultati, mi trovo con un centinaio di pagine il risultato è questo:

    pagine[124] 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-29-......e via dicendo fino a 124..

    vorrei far si che si vedessero le prime 10 al max poi un freccia o puntini puntini o un ''prosegui'' che mi permetta di passare da 10 a 20..poi da 20 a 30 insomma migliorarlo sia esteticamente si nell'utilizzo.
    Il codice è questo:
    codice PHP:
    Codice PHP:
    // esecuzione prima query
    $count = mysql_query('select eccc');

    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 20;

    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);

    // pagina corrente
    $current_page =(!isset($_GET['page'])) ? $pag = 1 : $pag = $_GET['page'];

    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;

    $query_limit ='SELECT * FROM tab LIMIT '.$primo.','.$per_page;
    eseguo query stampo i ris...

    // in questa cella inseriamo la paginazione
    $paginazione = "Pagine totali: " . $tot_pages . "
    ["
    ;
    for(
    $i = 1; $i <= $tot_pages; $i++) {
    if(
    $i == $current_page) {$paginazione .= $i . " ";}
    else {
    $paginazione .= "<a href=\"?page=$i&a=c&regione=$regione&tipo=$tipo\" >$i</a> ";
    }
    }
    $paginazione .= "]";
    $output.=' <tr> <td colspan="3" height="50" valign="bottom" align="center" class="testo">'.$paginazione.'</td></tr>';
    }
    else
    {
    $output.='<tr><td colspan="4" align="center"><b>La ricerca non ha portato risultati, prova a cambiare i criteri di ricerca</b></td></tr>';
    }
    Chi può darmi una mano per favore? Grazie Simone

    EDIT: Ho modificato questa parte:
    Codice PHP:
    // in questa cella inseriamo la paginazione
    $dieci=ceil ($tot_pages / 10);

    $paginazione = "Pagine totali: " . $tot_pages . "
    ["
    ;
    for(
    $i = 1; $i <= $dieci; $i++) {
    if(
    $i == $current_page) {
    $paginazione .= $i . " ";
    } else {

    /*if(!empty($_GET['reg_get'])){
    $paginazione .= "<a href=\"?page=$i&amp;regione=$regione&amp;tipo=$tipo \">$i</a> ";}else{
    $paginazione .= "<a href=\"?page=$i&amp;regione=".$_POST['l1']."&amp;tipo=".$_POST['tipo']."\">$i</a> ";
    } */
    $paginazione .= "<a href=\"?page=$i&amp;regione=$regione&amp;tipo=$tipo\" >$i</a> ";
    }
    }
    $paginazione .= "]";





    $output.=" <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";

    così avendo circa 200 pagine me ne stampa 20 per volta...ma come faccio a farlo passare alle 20 successive? aiutatemiiiii pleaseee
    Ultima modifica di debug : 05-05-2009 alle ore 10.49.02

  2. #2
    Guest

    Predefinito

    Se ne vuoi far vedere 20 per volta basta che parti da current_page - 10 e finisci a current_page + 10 .
    Ovviamente devi fare il controllo nel caso in cui current_page - 10 < 0 o current_page +10 > maxPage

  3. #3
    Guest

    Predefinito

    salve,
    scrivo qui dato che ho quasi lo stesso problema, visualizzare un tot di record per pagina . Nel mio caso si tratta di stringhe
    la query che eseguo per mostrare tutti i record è questa
    Codice PHP:
    $sql=mysql_query("SELECT id,campo FROM tabella ORDER BY id DESC");
    while((
    $fetch=mysql_fetch_array($sql))){
    echo
    $fetch['id']."&nbsp;=stringa&nbsp;".$fetch['campo']."<br>";}
    l'id è autoincrement , ho usato il DESC per far stampare prima le stringhe più recenti .
    Se volessi mostrare 20 record per pagina quali modifiche dovrei fare al mio codice? grazie e buonpomeriggio

  4. #4
    Guest

    Predefinito

    Il codice del primo post non l'ho provato, ma dovrebbe funzionare. Prendi spunto da lì.

  5. #5
    Guest

    Predefinito

    con qualche modifica è perfetto , è proprio quello che cercavo . Grazie mille

  6. #6
    Guest

    Predefinito

    Cioè scusa potresti farmi un esmpio per favore?

  7. #7
    Guest

    Predefinito

    Codice PHP:
    $da = (($current_page - 10 < 0) ? 0 : $current_page - 10);
    $a = (($current_page + 10 > $tot_pages) ? $tot_pages : $current_page + 10);

    $paginazione = "Pagine totali: " . $tot_pages . "
    ["
    ;
    for(
    $i = $da; $i <= $a; $i++) {
    if(
    $i == $current_page) {
    $paginazione .= $i . " ";
    } else {

    /*if(!empty($_GET['reg_get'])){
    $paginazione .= "<a href=\"?page=$i&amp;regione=$regione&amp;tipo=$tipo \">$i</a> ";}else{
    $paginazione .= "<a href=\"?page=$i&amp;regione=".$_POST['l1']."&amp;tipo=".$_POST['tipo']."\">$i</a> ";
    } */
    $paginazione .= "<a href=\"?page=$i&amp;regione=$regione&amp;tipo=$tipo\" >$i</a> ";
    }
    }
    $paginazione .= "]";

  8. #8
    Guest

    Predefinito

    Grandissimo...funziona graize mille

Regole di scrittura

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