Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    paginazione dati con numerosi record

    Per visualizzare i record letti da DB uso questa paginazione:
    Codice PHP:
    <?php
    //    $tot_pages è il numero complessivo delle pagine rilevate
    $paginazione "<li class=\"currentPag\">Pagine totali: " $tot_pages "-\n";
    for(
    $i 1$i <= $tot_pages$i++) {
        
    //    $current_page = la pagina corrente
        
    if($i == $current_page) {
            
    $paginazione .= "<li class=\"currentPag\"> " $i " ";
        } else {
            
    $paginazione .= "[*]<a href=\"".$cur_page."?settore=".$settore."&amp;cur_page=".$i."\" title=\"Vai alla pagina ".$i."\"> ".$i." </a>\n";
        }    
    }
    $paginazione .= "";
    ?>
    Questa funziona egregiamente quando i record sono in numero limitato mostrandomi i numeri di pagina su cui cliccare.
    Mi trovo ora a gestire numerosi record e come si può vedere in questo esempio mi invadono tutta la pagina.
    Usando la stessa tecnica, è possibile, quando i record sono così numerosi, stampare solo un numero limitato alla volta.
    Una cosa come è visibile qui
    Grazie per l'aiuto

  2. #2
    Io avevo già aperto una domanda simile... http://forum.html.it/forum/showthread/t-1468826.html
    alla fine della conversazione c'è la soluzione funzionante.
    Se ti da qualche problema chiedi pure.

    Ciao ciao

  3. #3
    Ciao Saretta883
    Ti ringrazio per la risposta. Ho prelevato il codice che mi hai suggerito e losto preparando per applicarlo alla mia pagina.
    Ad un primo esame mi sembra valido, poi ti farò sapere e, se mi funge, lo mostrerò nella pagina che ho lincato.

  4. #4
    Eccomi dopo i vari test che ho eseguito.
    Ho provato il codice da te suggerito. Debbo dire che funziona discretamente, ma mi restituisce un lungo elenco di link, non migliaia come quello mio, ma solo centinaia.
    Questo, debbo dire, non risolve il mio problema.
    Poi c'è un fatto: ad un certo punto, arrivati ad un numero congruo di pagine, mi permette di procedere nella esplorazione dei record passo passo agendo "NEXT" posto alla fine della riga.
    Cercando ancora ho trovato uno script che mi permette di ottenerequel che mi proponevo.
    In realtà l'avevo già notato in precedenza, ma non lo avevo adottato perchè c'era da intervenire sui nomi delle variabili la qual cosa mi portava in confusione (alcune variabili che sfuggivano alla mia attenzione e che portava il codice in errore).
    Tu mi hai fatto venire l'idea di mettere lo script in una funzione, dove i nomi delle variabili potevano restare come quelle originali.

    Per questo te ne sono grato.

    La funzione dove ho inserito lo script in questione ha come argomenti questi parametri:
    $numpag: num totale di pagine
    $pag: pagina corrente
    $webpage: la pagina che ospita lo script
    Per completezza posto la funzione che penso di adottare è questa:
    Codice PHP:
    <?php
    function pagination_4($numpag,$pag,$webpage){
        
    $querystring "";
        
    $n=20
        if (!
    $pag){
            
    $cur_page=1;
        }
    //apre di default la prima pagina se non è impostata la variabile $pag   
        
    if($numpag <= $n) {
            if (
    $pag>1) {
                echo(
    "<a href=\"".$webpage."?cur_page=".($pag-1)."$querystring\"> < </a>\n");
            }        
            for (
    $pagina 1$pagina <= $numpag$pagina++) {
                if (
    $pagina == $pag) {
                    echo(
    "<span class=\"selected\">$pagina </span>\n");
                } else {
                    echo(
    "<a href=\"".$webpage."?cur_page=$pagina$querystring\" title=\"Vai a pagina $pagina\"> $pagina </a>\n");
                }
            }
            if (
    $pag<$numpag) {            
                echo(
    "<a href=\"".$webpage."?cur_page=".($pag+1)."$querystring\"> > </a>");
            }
        } elseif(
    $pag <= ceil($n/2)) {//prime pag --> stampa primi n
            
    if ($pag>1) {
                echo(
    "<a href=\"".$webpage."?cur_page=".($pag-1)."$querystring\"> < </a>");
            }             
            for (
    $pagina=1$pagina<=$n$pagina++) {
                if (
    $pagina == $pag) {
                    echo(
    "<span class=\"selected\"> $pagina </span>");
                } else {
                    echo(
    "<a href=\"".$webpage."?cur_page=$pagina$querystring\" title=\"Vai a pagina $pagina\"> $pagina </a>");
                }
            }
            echo(
    "<a href=\"".$webpage."?cur_page=".($pag+1)."$querystring\"> > </a>");                  
            echo(
    "<a href=\"".$webpage."?cur_page=$numpag$querystring\" title=\"Vai all'ultima pagina\"> >> </a>");                  
        } elseif(
    $pag>$numpag-ceil($n/2)) {//ultime pag --> stampa ultimi n
            
    echo("<a href=\"".$webpage."?cur_page=1$querystring\" title=\"Vai alla prima pagina\"> << </a>");
            echo(
    "<a href=\"".$webpage."?cur_page=".($pag-1)."$querystring\"> < </a>");              
            for (
    $pagina=$numpag-$n+1$pagina<=$numpag$pagina++) {
                if (
    $pagina == $pag) {
                    echo(
    "<span class=\"selected\"> $pagina </span>");
                } else {
                    echo(
    "<a href=\"".$webpage."?cur_page=$pagina$querystring\" title=\"Vai a pagina $pagina\"> $pagina </a>");
                }
            }
            if (
    $pag<$numpag) {            
                echo(
    "<a href=\"".$webpage."?cur_page=".($pag+1)."$querystring\"> > </a>");
            }
        } else { 
    //pagine centrali --> stampa n/2 prima ed n/2 dopo
            
    echo("<a href=\"".$webpage."?cur_page=1$querystring\" title=\"Vai alla prima pagina\"> << </a>");
            echo(
    "<a href=\"".$webpage."?cur_page=".($pag-1)."$querystring\"> < </a>");                    
            for (
    $pagina=$pag-ceil($n/2-1); $pagina<=$pag+ceil($n/2-1); $pagina++) {
                if (
    $pagina == $pag) {
                    echo(
    "<span class=\"selected\"> $pagina </span>");
                } else {
                    echo(
    "<a href=\"".$webpage."?cur_page=$pagina$querystring\" title=\"Vai a pagina $pagina\"> $pagina </a>");
                }
            }
            echo(
    "<a href=\"".$webpage."?cur_page=".($pag+1)."$querystring\"> > </a>");
            echo(
    "<a href=\"".$webpage."?cur_page=$numpag$querystring\" title=\"Vai all'ultima pagina\"> >> </a> ");
        }
    }
    ?>
    Il link alla pagina è questo
    Per completezza ho lasciato:
    nella prima riga la tua funzione suggerita,
    nella seconda riga la nuova funzione qui sopra descritta e che probabilmente adotterò,
    e sotto la tabella è ancora presente la mia paginazione che naturalmente andrò a togliere perchè troppo invadente e dispersiva.

  5. #5
    Guarda http://www.awcore.com/dev/1/3/Create...-Pagination_en

    Penso che sia quello che ti serve.

  6. #6
    Si è vero...c'era questo problema...mi ero dimenticata che in quel codice c'era.
    Cmq l'ho risolto quindi ora ti posto il codice corretto

  7. #7
    questo è il codice della pagina "paginazione.inc.php"
    Codice PHP:
    <?php
    function pagination_4($total_pages,$page){

        global 
    $webpage;
        
    $pagination="";

            if(
    $total_pages!=1){

           
    /*Impostiamo il numero massimo di elementi visualizzabili all'apertura della patina, in questo caso 10;*/

            
    $max 10;

            
    //Usiamo questa variabile nel cilco for piu sotto;

            
    $max_links $max+1;
            
    $h=1;

                
    //Se la pagina è > di $max_links

            
    if($page>$max_links){

                
    //Facciamo partire il nostro loop

                
    $h=(($h+$page)-$max_links);
            }

              
    //Se la pagina non è l'unica

            
    if($page>=1){

                    
    //estendiamo il nosto range di link visualizzabili

                
    $max_links $max_links+($page-1);
            }

                
    //Se il numero massimo di link visualizzabili, supera il numero totale delle pagine, allora il numero di links è =numero totale di pagine

            
    if($max_links>$total_pages){
                
    $max_links=$total_pages+1;
            }

                
    //Creiamo i link prima e prev

            
    if($page>1){
                
    $pagination.="[url=".$webpage."] Prima [/url]
                                           [url="
    .$webpage."] Precedente [/url]";
            }

                
    //Creiamo le pagine linkate

            
    for ($i=$h;$i<$max_links;$i++){
                if(
    $i==$page){
                    
    $pagination.=" <a>".$i."</a> ";
                }
                else{
                    
    $pagination.=" [url=".$webpage."]".$i."[/url] ";
                }
            }

                
    //Creiamo i link Next  last buttons

            
    if(($page >="1")&&($page!=$total_pages)){
                
    $pagination.="[url=".$webpage."] Successiva [/url]
                                           [url="
    .$webpage."] Ultima [/url]";
            }
        }

        
    //if one page of results

        
    else{
            
    $pagination.="";
        }
        
        return(
    $pagination);
    }
    ?>
    Nella pagina dove vuoi che sia mostrata la paginazione metti:
    Codice PHP:
    require "include/paginazione.inc.php"
    Così richiami la pagina php che fa fisicamente la paginazione, poi:
    Codice PHP:
    $max_results 10;//numero di elementi da visualizzare per pagina.
    $total_results $pippo;
    $total_pages ceil($total_results $max_results);
    $from = (($page $max_results) - $max_results);
    $a= ($max_results $page); 
    questa è la parte che ti serve per impostare i parametri dei record da visualizzare
    Codice PHP:
    echo("<tr><td align='center' colspan='11'>".pagination_4($total_pages$page)."</td></tr>"); 
    così visualizzi la paginazione.
    Poi fammi sapere.

  8. #8
    Ciao Saretta883
    ho applicato l'ultimo codice che hai postato qui sopra alla pagina che viene visualizzata sempre al solito link
    In quella pagima la prima riga di link viene generata dalla tua funzione, la seconda è quella che avevo trovato e sotto il mio solito codice che lascerò nella pagina come storica memoria ma che assolutamente non adotterò.

    Come il solito questa è la pagina

    @cris.calleo
    Ti ringrazio per la tua segnalazione. Ho scaricato il codice del sito da te indicato ed ora mi dedico anche a quello.

    Ciao e grazie ad entrambi

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.