Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/04/2006, 04:38
Avatar de lcervantes
lcervantes
 
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 22 años, 1 mes
Puntos: 0
Aqui va algo de codigo..
config.php es donde tengo los parametros de conexion
//La clase SQL es donde realizo todas la operaciones de SQL SELECT, UPDATE, DELETE, LISTAS, COUNT, VALORREGISTRO, DEVOLVER FILA...
Y con el DATABASETYPE (MYSQL, MSSQL, ODBC)
Es decir un clase funcional para cualquier base de datos.
//----------------- SQL ---------------------
class SQL{
//Parametros de conexion
public $SERVER;
public $USER;
public $PASSWD;
public $DATABASE;
public $DATABASETYPE;

//Parametros de SQL
private $link;
private $result;
private $row;

//************* Connect ************************
public function Connect(){ .....}
//************* Query ************************
public function Query($query){ .....}
....... y mas metodos.
}

// --------------------- A --------------------------
class A{
// Variables de Classe
public $A_CODIGO = "";
public $A_NOMBRE = "";
public $A_DESCRIPCION = "";

private $SQL;

// **** Constructor ****
function __construct() {
include($_SERVER['DOCUMENT_ROOT'] . '/config.php');
$this->SQL = new SQL();
$this->SQL->DATABASETYPE = $DATABASETYPE;
$this->SQL->SERVER = $SERVER;
$this->SQL->DATABASE = $DATABASE;
$this->SQL->USER = $USER;
$this->SQL->PASSWD = $PASSWD;
$this->SQL->Connect();
}
function Guardar(){ ...Guardo un registro ...
$query = "Insert into A ....."
$this->SQL->Query($query);
}

function Borrar(){ ...Borro un registro..}
.... y otros metodos de la clase
}


// --------------------- B --------------------------
class B{
// Variables de Classe
public $B_CODIGO = "";
public $B_NOMBRE = "";
public $B_DESCRIPCION = "";

private $SQL;

// **** Constructor ****
function __construct() {
include($_SERVER['DOCUMENT_ROOT'] . '/config.php');
$this->SQL = new SQL();
$this->SQL->DATABASETYPE = $DATABASETYPE;
$this->SQL->SERVER = $SERVER;
$this->SQL->DATABASE = $DATABASE;
$this->SQL->USER = $USER;
$this->SQL->PASSWD = $PASSWD;
$this->SQL->Connect();
}
function Guardar(){ .....
$query = "Insert into B ....."
$this->SQL->Query($query);
}

function Borrar(){ .....}
.... y otros metodos de la clase

function Lista(){ ..Me muestra los valores en una tabla...}
.... y otros metodos de la clase
}


--------------------


Entonces desde el main..
al preparar las acciones a realizar con alguna clase..

$A = new A();
$A->Lista();

$B = new B();
$B->Lista()

unset($B)
unset($A)

En problema esta en que al parecer al realizar la
$A->Lista();
$SQL dentro de A se guardan sus respectivos datos
$B->Lista();
pero no se porque al realizar la lista de B los datos de A son modificados.
si luego queiro acceder a los datos de A.

el otro problema es que al realizar el unset(B) me libera $SQL de todos y luego si realizo el unset de(A) $SQL ya no lo localiza porque ha sido liberado.


Igual el problema es en el constructor de A y B que lo estoy haciendo mal.
y deveria crear un herencia SQL de A y SQL de B. Lo que no se si he de conciderar eso una herencia... ya que son funciones que se utilizo en todas las clases creadas...

Saludos y agradeceria cualquier ayuda..