1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| <?php
//chargement de la librarie
require 'Base.class.php';
// maclasse que je peux adaper au mieux pour mon appli
class Boutique
extends MapObject {
var $bou_id;
var $bou_nom;
var $bou_adresse;
var $bou_code_postal;
var $bou_ville;
var $bou_complement;
var $bou_telephone;
var $bou_ordre;
var $bou_valide;
function Boutique(&$table, $obj=NULL) {
parent::MapObject(&$table, $obj);
}
function maMethodeAMoi($param) {
...
}
}
//la classe représentant l'espace de stockage des objets de la classe précédente
class BoutiqueTable
extends MapTable {
function BoutiqueTable($obj=NULL, &$DataBase, $ClassName="Boutique") {
parent::MapTable($ClassName, 'bou_id', $obj, $DataBase, 'boutique');
}
}
//création de l'objet base (la constante CFG_DB_TYPE désigne le moter au utiliser MySQL, PostgreSQL, Oracle, etc.)
$db = new Base(CFG_DB_SERVER, CFG_DB_PORT, CFG_DB_DATABASE, CFG_DB_USERNAME, CFG_DB_PASSWORD, CFG_DB_TYPE);
//positionner le fichier de log entraine le traçage dans le fichier de toutes les requêtes
$db->setLogs(APP_SYSDIR_LOGS . "database.log");
//connexion à la base
$db->connect();
//récupération de la table des boutique (pas les données)
$boutiques = $db->getMapTable('BoutiqueTable');
//recherche d'une boutique par son ID l'objet retourné est de la classe Boutique
$aBoutique = $boutiques->getMapObjectById(25);
if ($aBoutique) {
echo $aBoutique->bou_nom;
print_r($aBoutique->maMethodeAMoi('un parametre'));
$aBoutique->bou_ville = 'Lyon';
//INSERT ou UPDATE automatique en fonction des données de l'objet (il existe les methode add et update pour optimiser)
$aBoutique->save();
}
$aBoutique = $boutiques->getMapObjectById(26);
if ($aBoutique) {
$aBoutique->delete();
}
while ($aBoutique = $boutiques->next()) {
$aBoutique->maMethodeAMoi('un parametre');
}
//supprime tous les élément répondant à la condition key et la clef primaire de la table (voir le constructeur)
$boutiques->remove($boutiques->key.'='.12);
//création d'une instance de Boutique associé à la table (garde la laison avec la table et la base);
//newMapObject prend en paramettre un tableau ou un objet ou nul
$aBoutique = $boutiques->newMapObject(array(
'bou_nom' => 'Les ormes',
'bou_adresse' => '18 rue belleville',
'bou_code_postal' => '32150',
'bou_ville' => 'Leognac',
'bou_complement' => 'BP 125',
'bou_telephone' => '0502010304'
'bou_ordre' => 25,
'Un champs parasite' => 'ce champs ne faisant pas partit de la table ne sera pas enregistré',
'bou_valide' => true));
$aBoutique->save();
//Il y a eut un add $aBoutique->add(); car l'élément n'étais pas en base la clef est mise à jour
echo $aBoutique->bou_id;
//vider la table (remove sans condition)
$boutiques->remove();
//fermer la connexion
$db->disconnect(); |
Partager