bonsoir les petits amis,
J'ai un immense probleme: j'ai une classe qui permet de faire des insertions en base de données de mes ressources.... le soucis, c'est que je suis obligé de passer ma base de données en paramètre a chaque création d'un objet ressource_db....
une petite présentation valant mieux qu'un long discours, voici mon code:
une personne plus douée que moi en objet saurait elle comment je peux faire pour ne pas devoir rappeler ma base a chaque fois dans le constructeur?
J'ai un immense probleme: j'ai une classe qui permet de faire des insertions en base de données de mes ressources.... le soucis, c'est que je suis obligé de passer ma base de données en paramètre a chaque création d'un objet ressource_db....
une petite présentation valant mieux qu'un long discours, voici mon code:
Code PHP :
<?php
/*
* fichier ressource.db.class.php du projet starwars
* Créé le 20 août 2006 à 22:08:48
*
* TODO
*
*
* Pour changer le template de ce fichier généré aller sous
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
require_once '../model/mysql.class.php';
class ressource_db
{
protected $element = "";
protected $value = "";
function __construct($db) //constructeur de la ressource
{
$this->db = $db;
$this->id = "0";
$this->nom = "0";
$this->categorie = "0";
}
function get($element) //permet de recuperer les valeurs de l'objet'
{
switch($element)
{
case 'id':
return $this->id;
case 'nom':
return $this->nom;
case 'croissance':
return $this->croissance;
case 'categorie':
return $this->categorie;
}
}
function set($element,$value) // permet de seter les elements de l'objet
{
switch($element)
{
case 'id':
$this->id = $value;
case 'nom':
$this->nom = $value;
case 'croissance':
$this->croissance = $value;
case 'categorie':
$this->categorie = $value;
}
}
function check () //valide que tout est bon pour insérer en base
{
$response = "0";
if ($this->id != "0")
{
if ($this->nom != "0")
{
if ($this->croissance != "0")
{
if ($this->categorie != "0")
{
$response = "1";
}
}
}
}
return $response;
}
function save () //insere en base
{
$ret = $this->check();
if ($ret == "1")
{
$contenu="INSERT INTO `tbl_ressource` VALUES ('".$this->id."','".$this->nom."','".$this->croissance."','".$this->categorie."')";
$res = $this->db->query($contenu);
}
}
function load ($id) //charge un élement depuis la base
{
$res = $this->db->query("SELECT * FROM tbl_ressource WHERE id ='".$id."'");
if ($res != 0)
{
$table = $this->db->getObject($res);
$this->id = $table->id;
$this->nom = $table->nom;
$this->croissance = $table->croissance;
$this->categorie = $table->categorie;
}
else
{
die ("unable to load object");
}
}
}
?>