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

    istanze di un oggetto global

    ho creato una classe che permette di dividere in pagine i record di una query... magicamente funziona!

    Codice PHP:
    <?php
        
    class dividixpag
        
    {
            var 
    $currentPag;
            var 
    $totPages;
            var 
    $totElements;
            
            function 
    dividixpag()
                {
                    
    //
                
    }
                
            function 
    dividiPag($query$pag 0$xPag 5)
                {
                    global 
    $db;
                    
                    
    $this->currentPag $pag;
                    
    $db->query($query);
                    
    $this->totElements $db->num_rows;
                    
                    if(
    $this->currentPag == 0)
                        {
                            
    $this->totPages = -1;
                            
    $limit_da 0;
                            
    $num $this->totElements;
                        }
                    else
                        {
                            
    $this->totPages ceil($this->totElements $xPag);
                            
    $limit_da = ($this->currentPag*$xPag-($xPag-1))-1;
                            
    $limit_a $this->currentPag*$xPag;
                    
                            if(
    $limit_a>$this->totElements)
                                
    $num $this->totElements $limit_da;
                            else    
                                
    $num$xPag;
                                
                        }
                    
                    return array(
    $limit_da$num);
                }
                
            function 
    showPages()
            {
                
    $link="index2.php";
                
                
    $qs=$_SERVER['QUERY_STRING'];
                
    $qs=eregi_replace("^(&p=)[0-9]*$","&p=",$qs);
                if (!
    ereg("^(p=)$"$qs))
                    
    $qs.="&p=";
                    
                
    $link.="?".$qs;
                
                    
                if(
    $this->currentPag!=1)
                    {
                        
    $prec $this->currentPag 1;
                        echo 
    "<a href=\"".$link."1\" title=\"Pag n. 1\">"."Prima"."</a>-\n";
                        echo 
    "<a href=\"".$link.$prec."\" title=\"Pag n. ".$prec."\">&lt;&lt;&lt;</a>-\n";
                    }
                else
                    echo 
    "Prima"." - &lt;&lt;&lt; - ";
                
                for(
    $x=1$x<=$this->totPages$x++)
                    {
                        if(
    $x==$this->currentPag)
                            echo 
    $x;
                        else
                            echo 
    "    <a href=\"".$link.$x."\" title=\"Pag n. $x\">$x</a> \n";
                        
                        echo 
    " - ";
                    }
                    
                if(
    $this->currentPag!=$this->totPages)
                    {
                        
    $succ $this->currentPag 1;
                        echo 
    "    <a href=\"".$link.$succ."\" title=\"Pag n. ".$succ."\">&gt;&gt;&gt;</a>-\n";
                        echo 
    "    <a href=\"".$link.$succ."\" title=\"Pag n. ".$this->totPages."\">"."Ultima"."</a>\n";
                    }
                else
                    echo 
    "&gt;&gt;&gt; - "."Ultima";
            }
            
            
        }
    ?>
    Nel programma istanzio la classe carrello
    $carrello = new carrello();

    e la classe per dividere
    $dividi = new dividixpag();

    nel metodo carrello::getCarrelli() ho messo
    global $db; // Recupera la connessione
    global $dividi; Recupera l'oggetto per dividere la query in pagine...

    solo che mi da: Fatal error: Call to a member function on a non-object in /web/htdocs/www.milanogiovanni.net/home/lib/php/classes/carrelli/carrelli.php on line 67

    perchè?

  2. #2
    Posta un intorno della rga 67 del file /web/htdocs/www.milanogiovanni.net/home/lib/php/classes/carrelli/carrelli.php

  3. #3
    Codice PHP:
                function getCarrelli($idCostruttore=0$idTipologia=0$idAlimentazione=0)
                    {
                        global 
    $db
                        global 
    $dividi;
                        
                        
    $sql="    SELECT     idCarrello,
                                        costruttore,
                                        modello,
                                        alimentazione,
                                        tipologia,
                                        portata,
                                        baricentro,
                                        montante,
                                        altezza_montante_chiuso,
                                        anno_costruzione,
                                        altezza_sollevamento,
                                        alzata_libera,
                                        ingombro_minimo,
                                        lunghezza_forche,
                                        peso_vuoto,
                                        ore_lavoro,
                                        batteria,
                                        tensione_batteria,
                                        capacita_batteria,
                                        caricabatteria,
                                        caricabatteria_voltaggio,
                                        gommatura,
                                        matricola,
                                        testo as note,
                                        immagine
                                FROM carrelli
                                LEFT JOIN archivi_costruttori
                                USING(idCostruttore)
                                LEFT JOIN archivi_alimentazioni
                                USING(idAlimentazione)
                                LEFT JOIN archivi_tipologie
                                USING(idTipologia)
                                LEFT JOIN archivi_montanti
                                USING(idMontante)
                                LEFT JOIN archivi_gommature
                                USING(idGommatura)
                                LEFT JOIN testi
                                USING(idTesto)
                                LEFT JOIN immagini
                                USING(idImmagine)"
    .$this->createQuery($idCostruttore$idTipologia$idAlimentazione);
                        
                        
    $sql.="ORDER BY costruttore, modello";
    rigainciriminata->        $xLimit $dividi->dividiPag($sql, isset($_GET['p']) ? (int)$_GET['p'] : 15);
                        
    $sql.=" LIMIT ".$xLimit[0].",".$xLimit[1];
                                
                        return 
    $db->get_results($sql);
                    } 

  4. #4
    Se dopo global $dividi; esegui var_dump($dividi) che cosa ottieni?

  5. #5
    fuori dalla classe echo $dividi mi da object, nella classe non mi da nulla

  6. #6
    Sei sicuro che $dividi sia una variabile globale?

    Se esegui var_dump($GLOBALS['dividi']) che cosa ottieni?

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.