02-11-2011, 11:31 AM
Voila le début de la class WSysteme (qui est bien plus longue)
Et voila le script appellant :
Code :
class WSysteme extends WConnect
{
private $Id_Joueur;
public $Id_JoueurID;
public $Id_Systeme;
public $SYJ_Galaxie;
public $iTaxe;
public $iStab;
public $EtatStab;
public $StabEvol;
public $iDstCap;
public $iEnv;
public $Climat;
public $SYJ_Taille;
public $Politique;
private $Politiques;
public $PopActu;
public $PopIdealBrut;
private $PopIdeal;
public $PopEvol;
public $iPtPla;
public $iScience;
public $CoordX;
public $CoordY;
public $Nom_Systeme;
public $Croi_Pop_Systeme;
public $Capa_Dock;
public $Zone_Race;
public $ListeOBJ=array();
public $ListeSTOCK=array();
function __tostring() {return "Cette classe permet de manipuler la table systeme_joueur.";}
//Fonction Get permetant le Lazy loading
public function __get($property)
{
global $dbh;
global $dbh;
$valeur=$property.'ID';
if(isset($this->$property))
return $this->$property;
elseif(isset($this->$valeur) and $property=='Id_Joueur')
return new WJoueur($this->$valeur,$dbh);
elseif(isset($this->Politique) and $property=='Politiques')
return new WPolitique($this->Politique,$dbh);
elseif($property=='PopIdeal')
return $this->CalculePopIdeal($this,$dbh);
else
trigger_error('Impossible de charger le sous objet : '.$property);
}
//Constructeur
function __construct($id,$connection=NULL)
{
$this->Load($id,$connection);
}
//Charge objet
function Load($id,$connection=NULL)
{
if($id>0) {
if($connection!='') $dbh = $connection;
else $dbh = $this->CreerConnexionPDO();
$requete = "SELECT * FROM systeme_joueur WHERE Id_Systeme='$id'";
$stmt = $dbh->prepare($requete); $stmt->execute();
foreach($stmt->fetchAll() as $data) {}
$this->RemplitObjet($this,$data);
}}
//Créée une lise de systeme_joueur
function GetListe($requete,$connection=NULL,$ordre='Id_Systeme')
{
if($connection!='') $dbh = $connection;
else $dbh = $this->CreerConnexionPDO();
$requete = "SELECT * FROM systeme_joueur WHERE $requete ORDER BY $ordre";
$res = $dbh->query($requete);
while($data = $res->fetch(PDO::FETCH_ASSOC))
{
$temp = new WSysteme();
$temp->RemplitObjet($temp,$data);
$this->ListeOBJ[$data['Id_Systeme']]=$temp;
}
}
//Créée une lise de systeme pour le rapport
function GetListeRapport($requete,$connection=NULL,$ordre='Id_Systeme')
{
if($connection!='') $dbh = $connection;
else $dbh = $this->CreerConnexionPDO();
$requete = "SELECT Id_Systeme,CoordX,CoordY,iEnv,Nom_Systeme,Climat,PopActu,Id_Joueur
FROM systeme_joueur WHERE $requete ORDER BY $ordre";
$res = $dbh->query($requete);
while($data = $res->fetch(PDO::FETCH_ASSOC))
{
$temp = new WSysteme();
$temp->RemplitObjet($temp,$data);
$this->ListeOBJ[$data['Id_Systeme']]=$temp;
}
}
//Remplit l'objet
private function RemplitObjet(WSysteme $objet,$data)
{
$objet->Id_Joueur = NULL;
$objet->Id_JoueurID = $data['Id_Joueur'];
$objet->Id_Systeme = $data['Id_Systeme'];
$objet->SYJ_Galaxie = $data['SYJ_Galaxie'];
$objet->iTaxe = $data['iTaxe'];
$objet->iStab = $data['iStab'];
$objet->EtatStab = $data['EtatStab'];
$objet->StabEvol = $data['SYJ_StabEvol'];
$objet->iDstCap = $data['iDstCap'];
$objet->iEnv = $data['iEnv'];
$objet->Climat = $data['Climat'];
$objet->SYJ_Taille = $data['SYJ_Taille'];
$objet->Politique = $data['Politique'];
$objet->PopActu = $data['PopActu'];
$objet->PopIdealBrut = $data['PopIdeal'];
$objet->PopEvol = $data['SYJ_PopEvol'];
$objet->iPtPla = $data['iPtPla'];
$objet->iScience = $data['iScience'];
$objet->CoordX = $data['CoordX'];
$objet->CoordY = $data['CoordY'];
$objet->Nom_Systeme = stripslashes($data['Nom_Systeme']);
$objet->Croi_Pop_Systeme = $data['Croi_Pop_Systeme'];
$objet->Capa_Dock = $data['Capa_Dock'];
$objet->Zone_Race = $data['Zone_Race'];
}
Et voila le script appellant :
Code :
echo '<br />Mémoire aprés recup données: '.round((memory_get_usage(FALSE)/1048576),2).' Mo';
//##################### SYSTEME DU JOUEUR ###########################
$LISTE_SYSTEME = new WSysteme;
$LISTE_SYSTEME->GetListeRapport("Id_Joueur='$login'",$dbh);
while(list($k,$SYSTEME)=each($LISTE_SYSTEME->ListeOBJ))
{
$Id_Systeme = $SYSTEME->Id_Systeme;
$X = $SYSTEME->CoordX;
$Y = $SYSTEME->CoordY;
$iEnv = $SYSTEME->iEnv;
echo '<br>-->Mémoire sys joueur: '.round((memory_get_usage(FALSE)/1048576),2).' Mo';
}
unset($LISTE_SYSTEME);
echo '<br><br>Mémoire apres sys joueur: '.round((memory_get_usage(FALSE)/1048576),2).' Mo';