Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209

    Dividere risultato di un query

    Ciao

    ho bisogno di fare un script per dividere il risultato di una query.
    Non ho idea da dove cominciare.

    Qualcuno mi puo dare una mano o un 'esempio?

  2. #2
    Spiegati meglio. cosa intendi per dividere il risultato?

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    intendi la paginazione?
    cioè dividere il risultato in più pagine??

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    si

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ..allora cerca perchè ci saranno almeno 100 discussioni anche risolte in merito..

  6. #6
    Guarda che coincidenza, l'ho scritta settimana scorsa

    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))
    #        {
    #            - campi che si vogliono estrarre -
    #        }
    #
    # 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 5;
        
        
    /**
        * 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> ";                            
                                }
                            
                        }
                    }
                }
                

                }
            }
            
            
            


  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    grazie

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.