Subversion Repositories Applications.gtt

Compare Revisions

Ignore whitespace Rev 13 → Rev 14

/trunk/classes/metiers/aGttSql.class.php
1,14 → 1,14
<?php
 
abstract class aGttSql {
 
/*** Attributs : */
private $base_de_donnees = GTT_BDD_NOM;
protected $table_nom;
protected $correspondance;
 
/*** Accesseurs : */
 
// Base De Donnees
function getBaseDeDonnees()
{
36,14 → 36,14
{
$this->dao_correspondance = $c;
}
 
/*** Méthodes : */
 
/** Instancie un objet utilisateur à partir d'un enregistrement issu de la base de donnée ou l'inverse.
* Cette métohode permet de s'abstraire des noms des champs présent dans la base de donnée.
*/
protected function basculerEnregistrementObjet($donnees, $instancier = false)
{
{
$classe = get_class($this);
if (is_array($donnees)) {
if ($instancier) {
68,7 → 68,7
foreach ($this->getCorrespondance() as $champ => $attribut) {
$methode = 'get'.str_replace(' ', '', ucwords(str_replace('_', ' ', $attribut)));
if (method_exists($donnees, $methode)) {
if ($donnees->$methode()) {
if (!is_null($donnees->$methode())) {
$enregistrement[$champ] = $donnees->$methode();
}
}
76,7 → 76,7
return $enregistrement;
}
}
 
/**
* Ajouter un enregistrement dans la base de données.
* @return true si ok, false si aucun enregistrement effectué
87,6 → 87,9
$sql_attributs = '';
$sql_valeurs = '';
foreach($enregistrement as $champ => $val) {
if (!is_numeric($val)) {
$val = '"'.$val.'"';
}
$sql_attributs .= $champ.', ';
$sql_valeurs .= $val.', ';
}
96,9 → 99,9
'( '.$sql_attributs.' ) '.
'VALUES '.
'( '.$sql_valeurs.' )';
trigger_error($requete, E_USER_NOTICE);
$resultat = $GLOBALS['db']->query($requete);
 
(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nbre_enregistrement_ajoute = $GLOBALS['db']->affectedRows();
if ($nbre_enregistrement_ajoute == 1) {
107,7 → 110,7
return false;
}
}
 
/**
* Modifier un enregistrement dans la base de données.
* @return true si ok, false si aucun enregistrement effectué
118,6 → 121,9
$sql_where = '';
$sql_set = '';
foreach($enregistrement as $champ => $val) {
if (!is_numeric($val)) {
$val = '"'.$val.'"';
}
if (preg_match('/_id_/', $champ)) {
$sql_where .= $champ.' = '.$val.' AND ';
} else {
127,9 → 133,9
$sql_set = trim($sql_set, ', ').' ';
$sql_where = trim($sql_where, ' AND ').' ';
$requete = 'UPDATE '.$this->getBaseDeDonnees().'.'.$this->getTableNom().' SET '.$sql_set.'WHERE '.$sql_where;
trigger_error($requete, E_USER_NOTICE);
$resultat = $GLOBALS['db']->query($requete);
 
(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
$nbre_enregistrement_ajoute = $GLOBALS['db']->affectedRows();
if ($nbre_enregistrement_ajoute == 1) {
138,7 → 144,7
return false;
}
}
 
/**
* Supprimer un enregistrement dans la base de données.
* @return true si ok, false si aucun enregistrement effectué
148,6 → 154,9
$enregistrement = $this->basculerEnregistrementObjet($this);
$sql_where = '';
foreach($enregistrement as $champ => $val) {
if (!is_numeric($val)) {
$val = '"'.$val.'"';
}
//if (preg_match('/_id_/', $champ)) {
$sql_where .= $champ.' = '.$val.' AND ';
//}
154,7 → 163,7
}
$sql_where = trim($sql_where, ' AND ').' ';
$requete = 'DELETE FROM '.$this->getBaseDeDonnees().'.'.$this->getTableNom().' WHERE '.$sql_where ;
trigger_error($requete, E_USER_NOTICE);
$resultat = $GLOBALS['db']->query($requete);
(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
 
165,6 → 174,6
return false;
}
}
 
}
?>