Ciao a tutti,
prendendo spunto da un utilissimo articolo di php.html.it ho cominciato ad utilizzare le classi e gli oggetti per la gestione del mio DB.
Il login funziona correttamente.
Mi da problemi invece quando gli chiedo di farmi una query più complessa.
In pratica devo fare l'elenco di alcuni record e dopo avermi visualizzato il primo record mi viene fuori:

codice:
Fatal error</b>:  Call to a member function estrai() on a non-object in
Il mio file che gestisce il db è il seguente:

codice:
class MysqlClass {


    // variabili per la connessione al database
    public $nomehost = "localhost";
    public $nomeuser = "root";
    public $password = "";
    public $nomedb = "intranet";
    // controllo sulle connessioni attive
    public $attiva = false;


    // funzione per la connessione a MySQL
    public function connetti() {
        if (!$this->attiva) {
            if ($connessione = mysql_connect($this->nomehost, $this->nomeuser, $this->password) or die(mysql_error())) {
                $selezione = mysql_select_db($this->nomedb, $connessione) or die(mysql_error());
            }
        } else {
            return true;
        }
    }


//funzione per l'esecuzione delle query 
    public function query($sql) {
        if (isset($this->attiva)) {
            $sql = mysql_query($sql) or die(mysql_error());
            return $sql;
        } else {
            return false;
        }
    }


//funzione per l'inserimento dei dati in tabella
    public function inserisci($t, $v, $r = null) {
        if (isset($this->attiva)) {
            $istruzione = 'INSERT INTO ' . $t;
            if ($r != null) {
                $istruzione .= ' (' . $r . ')';
            }


            for ($i = 0; $i < count($v); $i++) {
                if (is_string($v[$i]))
                    $v[$i] = '"' . $v[$i] . '"';
            }
            $v = implode(',', $v);
            $istruzione .= ' VALUES (' . $v . ')';


            $query = mysql_query($istruzione) or die(mysql_error());
        }else {
            return false;
        }
    }


//funzione per l'estrazione dei record 
    public function estrai($risultato) {
        if (isset($this->attiva)) {
            $r = mysql_fetch_object($risultato);
            return $r;
        } else {
            return false;
        }
    }


// funzione per la chiusura della connessione
    public function disconnetti() {
        if ($this->attiva) {
            if (mysql_close()) {
                $this->attiva = false;
                return true;
            } else {
                return false;
            }
        }
    }


}
Poi ho una mia pagina così composto dove richiamo il file sopra citato e istanzio la classe:

codice:
<?phpsession_start();
// inclusione del file di classe
include "funzioni_mysql.php";

// istanza della classe
$data = new MysqlClass();
global $data;

?>

..... CODICE HTML .....

<?php
$data->connetti();
$querySql = "SELECT richiestaintervento.titolo AS titolo, "
   . "richiestaintervento.aperto AS aperto, "
   . "richiestaintervento.rapportino AS rapportino, "
   . "richiestaintervento.utenteRichiedente, "
   . "richiestaintervento.dataApertura AS data, "
   . "richiestaintervento.tipologia, "
   . "tipologia.descrizione AS tipologia, "
   . "luogo.descrizione AS luogo "
   . "FROM "
   . "richiestaintervento "
   . "INNER JOIN "
   . "tipologia "
   . "ON "
   . "richiestaintervento.tipologia = tipologia.id "
   . "INNER JOIN "
   . "luogo "
   . "ON "
   . "richiestaintervento.luogo = luogo.id "
   . "WHERE "
   . "richiestaintervento.tipologia = "
   . "(SELECT utentitipologia.tipologia FROM utentitipologia "
   . "WHERE username = '" . $_SESSION['login'] . "') "
   . "AND richiestaintervento.aperto=0 "
   . "ORDER BY richiestaIntervento.dataApertura DESC";


   $sql_cerca = $data->query($querySql);


   $trovati = mysql_num_rows($sql_cerca);


   if ($trovati > 0) {
       while ($cerca_obj = $data->estrai($sql_cerca)) {
            $data = $cerca_obj->data;
            $tipologia = stripslashes($cerca_obj->tipologia);
            $luogo = stripslashes($cerca_obj->luogo);
            $motivo = stripslashes($cerca_obj->titolo);


            // visualizzazione dei dati
            echo "<tr>\n";
            echo "<th>" . $data . "</th>\n";
            echo "<th>" . $tipologia . "</th>\n";
            echo "<th>" . $luogo . "</th>\n";
            echo "<th>" . $motivo . "</th>\n";
            echo "</tr>";
       }
    }


// disconnessione
$data->disconnetti();
?>
Grazie mille.