BOnjour,
j'ignore si le titre de mon post est suffisament explicite, je savais pas trop comment formuler ca.
J'essaye de créer des formulaires en utilisant PEAR_DB,DB_DATAOBJECT,
DATAOBJECT_FORMBUILDER.
La premiere étape consiste si j'ai bien compris à créer des classes dérivées de DB_DAtaObejct grace a un script (createTables) et un fichier ini qui donen a ses classes les parametres de connexion etc.
Ici je rencontre un premier probleme:
d'après la doc , lorsque l'on utilise ce genre de script, on a plus à utiliser de tableaux pour donner les parametres de conenxion, or si je prend l'une de ces classes qui s'appele par exempel 'Film' et que je fais:
j'ai un message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $fil=new DBO_film(); $fil->find();
Deja la je ne comprend pa sje suis oblige d'ne passé par un tableau pour que ca puisse fonctionner:No database name / dsn found anywhere
Ceci est mon premier probleme je ne comprends pas pourquoi étant donén que j'ai passé le script ini lors de la creation des classes je dois repasser par la? Mais ce n'est pas ce qui me pose le plus de probleme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $opts = &PEAR::getStaticProperty('DB_DataObject','options'); $opts = array( 'class_location' => 'C:/www/Projet/phplib/DBO', 'class_prefix' => 'DBO_', 'schema_location' => 'C:/www/Projet/phplib/DBO', 'database' => "mysql://cnam:aerith@localhost/cinebase" );
Ma classe film a une FK qui point vers la PK d'une table appelée genre.
J'ai un fichier qui s'appèle:
C:/www/Projet/phplib/DBO/cinebase.links.ini
lorsque j'essaye de créer un lien entre 2 tables par:
le mode Debug m'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $fil = DB_DataObject::factory('film'); $gen = DB_DataObject::factory('genre'); $fil->joinAdd($gen,'INNER');
Du coup tout se passe comem si les liens indiqués dans cinebase.links.ini n'étaient pa spris en compte exactement comme ca semble avoir été le cas des parametre de connexion que j'avais donné à createTables au moment de générer les classes.DBO_Genre: databaseStructure: Loaded ini file: C:/www/Projet/phplib/DBO/cinebase.ini
DBO_Genre: databaseStructure: Loaded links.ini file: C:/www/Projet/phplib/DBO/cinebase.links.ini
DBO_Film: ERROR: joinAdd: genre has no link with film
Pourriez vous m'aiguilelr pour resoudre ce probleme?
J'ai passé de longues heures à éplucher la doc de PEAR et de nombreux articles et tutoriaux mais je ne comprends pas pourquoi j'ai ces erreurs, je vous serait très reconnaissant si vous pouviez me débloquer pour l'instant je ressemble à ça :
![]()
Partager