Date de publication : 29/07/2007 , Date de mise à jour : 29/12/2007
Par
Nicolas BOITEUX
SELECT * from utilisateur;
va renvoyer 10 objets utilisateur.
SELECT * from utilisateur,ville WHERE utilisateur.id_ville=ville.id_ville;
va renvoyer 10 objets utilisateur, et 5 objets ville
$objet->attribut = $valeur;
Exemple:
$utilisateur->login = "newlogin";
$objet->load();
Exemple pour l'utilisateur1:
/**creationd'un objet 駲uivalent ? la table utilisateur */
$utilisateur = PMO_MyObject::factory('utilisateur');
/**user_idcorrespond?laclefprimaire*/
$utilisateur->user_id = 1;
$utilisateur->load();
$objet->commit();
exemple:
$utilisateur->commit();
$objet->delete();
exemple:
$utilisateur->delete();
$objet->toXml($encoding);
exemple:
$utilisateur->toXml("ISO-8859-1");
$objetable = $objet->getTable()
exemple:
$tableutilisateur = $utilisateur->getTable();
Editez la variable table_alias du cache de la table
exemple pour que customer_id devienne toto:
protected $table_alias = Array(
'customer_id'=> 'toto'
);
Editez la variable table_classname du cache de la table
exemple:
protected $table_classname = "newclassname";
PMO_MyMap -|
|-- row --|
|--> r馭駻ence PMO_MyObject
SELECT * from utilisateur,ville WHERE utilisateur.id_ville=ville.id_ville;
qui renverait deux lignes serait repr駸ent? comme 軋:
PMO_MyMap -|
|-- row 0 --|
|--> r馭駻ence PMO_MyObject utilisateur
|--> r馭駻ence PMO_MyObject ville
|-- row 1 --|
|--> r馭駻ence PMO_MyObject utilisateur
|--> r馭駻ence PMO_MyObject ville
$result = $map->fetch();
exemple:
while($result = $map->fetch()){
echo($result['utilisateur']->login);
}
$object = $map->getObjectByValue("nomdetable", "nomdecolonne", "valeur");
exemple:
$object = $map->getObjectByValue("utilisateur", "login", "toto");
$newmap = $map->getMapByTable("nomdelatable")
exemple:
$newmap = $map->getMapByTable("utilisateur");
$newmap = $map->getMapByValue("nomdetable", "nomdecolonne", "valeur");
exemple:
$newmap = $map->getMapByValue("utilisateur", "login", "toto");
$newmap = $map->getMapByObjectByValue($PMO_MyObject);
exemple:
$user->user_id = 1;
$user->user_departement_id = 1;
$newmap = $map->getMapByObjectByValue($user);
classutilisateur extends PMO_MyObject{
public function helloworld(){
echo('thisclassisinstanciatewhenadatabasetableuserexist');
}
}
Editez cette ligne:
protected $table_classname = "utilisateur";
L'objetpeut黎reensuiteutilis?decettefa輟n:
$object=PMO_MyObject::factory('utilisateur');
$object->helloworld();
try{
$object->commit()
}catch(Exception $e){
die($e->getMessage());
}
try{
$user->loginz = "toto";
}catch(Exception $e){
die($e->getMessage());
}
/** mysql / sqlite / oracle / pgsql */
$driverz = "sqlite";
/** if you use sqlite */
$dsn = 'sqlite:c:/test/test.db';
$hostz = 'localhost';
$userz = 'votrelogin';
$passz = 'votrepass';
$basez = 'votrebase';
require_once("core/PMO_MyController.php");
$controler = new PMO_MyController();
$map = $controler->query("SELECT*FROMemployelimit20;");
while ($result = $map->fetch()){
echo($result['employe']->nom);
}
require_once("core/PMO_MyController.php");
$controler = new PMO_MyController();
$map = $controler->query("SELECT*FROMemploye,parkingWHEREemploye.id_employe=parking.id_employelimit20;");
while ($result = $map->fetch()){
echo($result['employe']->nom);
echo($result['parking']->numero_place);
}
require_once("core/PMO_MyController.php");
$controler = new PMO_MyController();
$map = $controler->query("SELECT*FROMemploye;");
$employe = $map->getObjectByValue("employe", "nom", "dupont");
$employe->nom = "durand";
$employe->commit();
require_once("core/PMO_MyController.php");
$employe = PMO_MyObject::override("employe");
$employe->id = "250";
$employe->nom = "durand";
$employe->commit();
require_once("core/PMO_MyController.php");
$employe = PMO_MyObject::factory("employe");
$employe->nom = "Masson";
$employe->commit();
require_once("core/PMO_MyController.php");
$controler = new PMO_MyController();
$map = $controler->query("SELECT*FROMfilm,actorWHEREfilm.actor_id=actor.actor_id;");
$actor = $map->getObjectByValue("actor", "nom", "dupont");
//nousr馗up駻onslamapdefilmli??l'acteurs駘ectionn?ci-dessus
$mapoffilm = $actor->getRelated('film');
while ($result = $mapoffilm->fetch()){
echo($result['film']->nom_film);
}
require_once("core/PMO_MyController.php");
classgestionutilisateur(){
/**r馗up鑽eunutilisateurdansSGBD*/
public function getUser(PMO_MyObject $user){
/**chargelesdonn馥s?partirdusgbd*/
$user->load();
/**retournel'objetuser*/
return $user;
}
/**ajouteunutilisateurenbase*/
public addUser(PMO_MyObject $user){
/**ecritlesdonn馥sdel'objetdanslatableutilisateur*/
$user->commit();
}
/**creerunobjetutilisateur*/
public createUser(){
return PMO_MyObject::factory("utilisateur");
}
/**supprimeunutilisateur*/
public removeUser(PMO_Object $user){
/**supprimelesdonn馥srelative?l'objetdanslatableutilisateur*/
$user->delete();
}
/**affichelesdonn馥sutilisateurs*/
public printUser(PMO_Object $user){
echo($user->user_id);
echo($user->name);
echo($user->login);
}
/**controlelemotdepassedel'utilisateur*/
public checkPass(PMO_Object $user, $password){
if($user->pass == sha1($password))
return TRUE;
return FALSE;
}
}
require_once("core/PMO_MyController.php");
/**instancielecontrolleur*/
$controler = new PMO_MyController();
/**creeunemapd'objets*/
$map = $controler->query("SELECT*FROMuser,villewhereuser_id="$userid
AND ville.id_ville=user .id_ville; ");
while($result=$map->fetchMap()){
$utilisateur=$result['user'];
$ville=$result['ville'];
echo("Nom:".$utilisateur->nom);
echo("Ville:"$ville->nom_ville);
}
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 29/07/2007 Nicolas BOITEUX. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.