Rev 167 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Modèle d'accès à la base de données des listes* d'ontologies** PHP Version 5** @package Framework* @category Class* @author aurelien <aurelien@tela-botanica.org>* @copyright 2009 Tela-Botanica* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL* @version SVN: $$Id: ListeAdmin.php 128 2009-09-02 12:20:55Z aurelien $$* @link /doc/framework/**/class GestionAnnuaireModele extends Modele {public function verifierPresenceTable($bdd, $nom_table) {if(!$bdd || !$nom_table) {return false;}$requete = 'DESCRIBE '.$bdd.'.'.$nom_table;$resultat = $this->requeteUn($requete);return $resultat;}public function verifierPresenceChamps($bdd, $nom_table, $champs_a_verifier) {if(!$bdd || !$nom_table) {return false;}$requete = 'DESCRIBE '.$bdd.'.'.$nom_table;$resultat = $this->requeteTous($requete);if(!$resultat) {return false;}$tableau_champs_table = array();;foreach($resultat as $champ_table) {$tableau_champs_table[] = $champ_table['Field'];}foreach($champs_a_verifier as $champ) {if(!in_array($champ, $tableau_champs_table)) {return false;}}return $resultat;}public function ajouterAnnuaire($informations) {if(!$informations) {return false;}$valeurs_prot = array_map(array($this,'proteger'),$informations);$valeurs = implode(',',$valeurs_prot);$champs = implode(',',array_keys($informations));$requete_insertion_annuaire = 'INSERT INTO annu_annuaire '.'('.$champs.') '.'VALUES ('.$valeurs.')';$resultat_insertion_annuaire = $this->requete($requete_insertion_annuaire);$id_annuaire = false;if($resultat_insertion_annuaire) {$requete_selection_annuaire = 'SELECT aa_id_annuaire FROM annu_annuaire '.' WHERE aa_code = '.$this->proteger($informations['aa_code']);$resultat_selection_annuaire = $this->requeteUn($requete_selection_annuaire);if($resultat_selection_annuaire) {$id_annuaire = $resultat_selection_annuaire['aa_id_annuaire'];}}return $id_annuaire;}/*** Charge la liste complète des champs d'un annuaire* @param int $identifiant l'identifiant de l'annuaire demandé* @param boolean $charger_liste_champs indique si l'on doit ou non charger la liste des noms des champs* @return array un tableau contenant des objets d'informations sur les annuaires*/public function chargerAnnuaire($identifiant, $charger_liste_champs = true) {$requete = 'SELECT * '.'FROM annu_annuaire '.'WHERE aa_id_annuaire = '.$identifiant.' ';$resultat = $this->requeteTous($requete);$annuaire = array();foreach ($resultat as $ligne) {$annuaire['informations'] = $ligne;}if($charger_liste_champs) {$requete = 'DESCRIBE '.$annuaire['informations']['aa_bdd'].'.'.$annuaire['informations']['aa_table'];$resultat = $this->requeteTous($requete);foreach ($resultat as $colonne) {$annuaire['colonnes'][] = $colonne;}}return $annuaire;}}