Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589

    paginazione 1a10eseguente

    ciao volevo fare in modo che invece di visualizzare tutte le pagine , venissero visualizzate da 1 a 10 e poi col seguente da 11 a 20 e cosi via

    Codice PHP:
      for($i=1;$i<=$tot_pages;$i++) {
          echo 
    "<a href=\"?page=$i&carte=$cartella&attuale=$nomeattualec\" title=\"Vai alla pagina \"><font color=\"white\">$i</font></a>&nbsp&nbsp";
               } 
    grazie

  2. #2
    Ti invio una classe che ho fatto io:

    Codice PHP:
    ###################################################################################
    # Classe MakePage

    # Utilizzo:
    # Configurare le proprietà pubbliche all'inizio della classe come da spiegazioni
    #
    # Cereare l'istanza:
    # $paging = new MakePage($_GET['start']);
    # $paging->Result();
    # A questo punto abbiamo istanziato la classe con $_GET['start'] come costruttore.
    # E' fondamentale mantenere questo costruttore in quanto MakePage accorda all'url
    # tramite GET il punto di ingresso della paginazione con la variabile start.
    # In seguito, il metodo Result, restituisce l'identificativo per il database
    # tramite la proprietà res.
    #
    # while ($row = mysql_fetch_array($paging->res))
    #        {
    #            echo $row['titolo'];
    #        }
    #
    # A questo punto abbiamo costruito l'elenco limitato ad un numero definito
    # di record; ora mettiamo i link "pagina precedente" e "pagina successiva".
    # Semplicemente:
    # <td>$paging->previous_link()</td><td>$paging->next_link()</td>
    # Quello che verrà stampato da questi due metodi, dipende dalla configurazione
    # delle proprietà previous_link_string e next_link_string, come spiegato di seguito
    # In opzione possiamo anche aggiungere l'indice delle pagine.
    # Semplicemente:
    # $paging->IndexLinks() da inserire magari tra il previous e il next link.
    ######################################################################################



    /**
     * MakePage
     *
     * @package lib
     * @author Tarchini Maurizio
     * @copyright 2008
     * @access public
     */
     

    class MakePage
    {
        
        
    /**
        * step indica il numero di records per pagina
        * @var int
        */
        
    var $step 10;
        
        
    /**
        * db_name, db_host, db_user, db_password
        * sono i parametri di configurazione per
        * l'accesso al database.
        * @var string 
        */
        
        
    var $db_name "";
        var 
    $db_host "";
        var 
    $db_user "";
        var 
    $db_password "";
        
        
    /**
        * con table si indica la tabella del database nella
        * quale vanno cercati i dati; questo parametro é obbligatorio
        * @var string 
        */
        
    var $table "table";
        
        
    /**
        * In where vanno indicate le clausule della ricerca. Ad esempio
        * $where = "id > 100 AND id < 1000";
        * In questo caso verranno estratti i record con id superiore a 100
        * ed inferiore a 1000. Questa proprietà non é obbligatoria, se non
        * viene utlizzata nessuna clausula, $where = "";
        * @var string
        */
        
    var $where "";
        
        
    /**
        * order fa riferimento alla clausula ORDER BY, va indicato
        * rispetto a cosa il risultato della ricerca deve essere
        * ordinato. Ad esempio: $order = "data". I risultati verranno
        * ordinati per data. Il contenuto di order deve essere un 
        * campo valido della tabella, in caso contrario si
        * produrrà un errore. Order non é obbligatorio, se non
        * viene utilizzato: $order = "";
        * @var string 
        */
        
    var $order "";
        
        
    /**
        * asc_desc è un complemento di order. Inserire ASC se si desiderano
        * i risultati in ordine crescente o DESC se si desiderano i risultati
        * in ordine decrescente. Questa clausula non é obbligatoria ed é inutile
        * se non si utilizza la proprietà order. Se non utilizzata:
        * $asc_desc = "";
        * Se utilizzata accetta solo ASC o DESC, qualunque altro inserimento
        * produrrà un errore.
        * @var string 
        */
        
    var $asc_desc "DESC";
        
        
    /**
        * next_link_string e previous_link_string contengono la stringa che
        * verrà utilizzata come link per spostarsi tra le pagine ad esempio:
        * $next_link_string = "Successive"  oppure ">" oppure se si 
        * desidera inserire un'immagine:
        * $next_link_string = "[img]next.png[/img]";
        * Questi parametri sono obbligatori
        * @var string 
        */
        
    var $next_link_string "Successiva";
        var 
    $previous_link_string "Precedente";
        
        
    /**
        * Se utilizziamo il metodo IndexLinks é buona cosa limitare
        * la lunghezza dell'indice stesso. Infatti, se dovessero 
        * esserci molte pagine, si rischia di avere un'indice enorme
        * che sfora il layout. MakePage cercherà di distribuire
        * equamente l'indice delle pagine prima e dopo la pagina
        * attuale. Ad esempio se max_index=10:
        * Alla prima pagina mostrerà i link delle pagine da 1 a 10,
        * ma se si troverà a pagina 8, mostrerà i link delle pagine
        * da 3 a 13.
        * @var int  
        */
        
    var $max_index 10;
        var 
    $page;
        var 
    $next_link;
        var 
    $previous_link;
        var 
    $conn;
        var 
    $start;
        var 
    $max;
        var 
    $res;
        var 
    $select;
        var 
    $count;
        
        
      
    /**
       * MakePage::MakePage()
       *
       * @param mixed $start
       * Costruttore della classe
       * @return void
       */
            
    function MakePage ($start)
            {
                if (!isset(
    $start) OR $start 0)
                {
                    
    $start 0;
                }
                
    $this->start $start;    
                
    $this->page basename($_SERVER['PHP_SELF']);
            }
            
      
    /**
       * MakePage::DbConnectAndSelect()
       *
       * @return void
       */
            
    function DbConnectAndSelect ()
            {
                
    $this->conn = @mysql_connect($this->db_host,$this->db_user,$this->db_password) or die("Impossibile connettersi a MySql");
                @
    mysql_select_db($this->db_name,$this->conn) or die ("Impossibile selezionare il database $this->db_name");
            }
            
      
    /**
       * MakePage::DefineQuerys()
       *
       * @return void
       */
            
    function DefineQuerys ()
            {
                if (
    $this->where != "")
                {
                    
    $this->where " WHERE " $this->where;
                    
                }
                if (
    $this->order != "")
                {
                    
    $this->order " ORDER BY " $this->order;
                    
                    if (
    $this->asc_desc != "")
                    {
                        
    $this->asc_desc " " $this->asc_desc;
                    }
                    else
                    {
                        
    $this->asc_desc " ";
                    }
                }
                
    $this->select "SELECT * FROM " $this->table $this->where $this->order $this->asc_desc " LIMIT " $this->start "," $this->step;
                
                
    $aa " WHERE rif='general'";
                
    $this->count "SELECT COUNT(*) AS tot FROM " $this->table $this->where;
                
            }
            
      
    /**
       * MakePage::DefineMax()
       *
       * @return void
       */
            
    function DefineMax ()
            {
                
    $this->DbConnectAndSelect();
                
    $resM mysql_query($this->count$this->conn);
                
    $row mysql_fetch_array($resM);
                
    $this->max $row['tot'];
                
    mysql_close($this->conn);
            }
            
      
    /**
       * MakePage::Result()
       *
       * @return resource
       */
            
    function Result ()
            {
                
    $this->DbConnectAndSelect();
                
    $this->DefineQuerys();
                
    $this->res mysql_query($this->select$this->conn);    
            }
            
      
    /**
       * MakePage::NextLink()
       *
       * @return string
       */
            
    function NextLink ()
            {
                
    $this->DefineMax();
                if (
    $this->start $this->step $this->max)
                {
                    
    $next $this->start $this->step;
                    echo 
    "<a href=\"$this->page?start=$next\">$this->next_link_string</a>";
                }
            }
            
      
    /**
       * MakePage::PreviousLink()
       *
       * @return string
       */
            
    function PreviousLink ()
            {
                if (
    $this->start 0)
                {
                    
    $back $this->start $this->step;
                    echo 
    "<a href=\"$this->page?start=$back\">$this->previous_link_string</a>";
                }
            }
            
      
    /**
       * MakePage::IndexLinks()
       *
       * @return string
       */
            
    function IndexLinks ()
            {
                
    $this->DefineMax();
                
    $pages intval(($this->max 1) / $this->step) + 1;
                if (
    $pages 1)
                {
                    if (
    $this->start == 0)
                    {
                        
    $now 1;
                    }
                    if (
    $this->start 0)
                    {
                        
    $now = ($this->start $this->step) + 1;
                    }

                
    $si $now - (intval($this->max_index 2));
                
    $ei $now + (intval($this->max_index 2));
                
                if (
    $si <= 0)
                {
                    
    $ei $ei abs($si);
                    
    $si 0;
                        for (
    $i $si$i $pages AND $i $this->max_index $si$i++)
                        { 
                            
    $start_page $i $this->step;
                                
                                if (
    $now == $i 1)
                                    {
                                        
    $n $i 1;
                                        echo 
    $n ";
                                    }
                                    else
                                    {
                                        echo 
    "<a href=$this->page?start=$start_page>" . ($i 1) . "</a> ";
                                    }
                        }
                }
                else
                {
                    if (
    $ei >= $pages)
                    {
                        
    $x $ei $pages;
                        
    $si $si $x;
                        
    $ei $pages;
                            for (
    $i $si$i $pages$i++)
                            { 
                                
    $start_page $i $this->step;
                                
                                    if (
    $now == $i 1)
                                    {
                                        
    $n $i 1;
                                        echo 
    $n ";
                                    }
                                    else
                                    {
                                        echo 
    "<a href=$this->page?start=$start_page>" . ($i 1) . "</a> ";
                                    }
                            }                
                    }
                    else
                    {    
                        for (
    $i $si 1$i <= $ei$i++)
                        { 
                            
    $start_page $i $this->step;
                                if (
    $now == $i 1)
                                {
                                    
    $n $i 1;
                                    echo 
    $n ";
                                }
                                else
                                {
                                    echo 
    " <a href=$this->page?start=$start_page>" . ($i 1) . "</a> ";                            
                                }
                            
                        }
                    }
                }
                

                }
            }
            
            
            


  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    221
    butta un occhio al pager di pear
    ciAo

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    589
    grazie per il prezioso codice , io cmq ho gia risolto il problema della pagina precedente o successiva , il codice che mi serviva era praticamente quello che serve a far apparire sotto appunto la numerazione da 1 a 10 e sucessiva


    in pratica ora è cosi:

    precedente pag 4/37 sucessiva


    voglio aggiungere

    1 2 3 4 5 6 7 8 9 10 successuve (precendenti 11 12 13 .... successive ) ( precedente 36..37 )

    n.b. il codice che ho postato sopra in pratica mi scriveva tutti i numeri da 1 a 37 con il collegamento

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 © 2024 vBulletin Solutions, Inc. All rights reserved.