Re: [DB_DataObject] Struggling with n:m-relation

From: Date: Thu, 03 Jun 2004 14:38:55 +0000
Subject: Re: [DB_DataObject] Struggling with n:m-relation
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-12866@lists.php.net to get a copy of this message
Marco Schuler wrote:
Hi I have to following 3 tables that build a n:m-relation: Table teacher: +--------------------+------------------+
| Field              | Type             |
+--------------------+------------------+
| teacher_id         | int(10) unsigned |
| teacher_forename   | varchar(50)      |
| teacher_surname    | varchar(50)      |
+--------------------+------------------+ Table teacher_has_teachersubject: +-------------------+------------------+
| Field             | Type             |
+-------------------+------------------+
| teacher_id        | int(10) unsigned |
| teachersubject_id | int(10) unsigned | +-------------------+------------------+ Table teachersubject: +----------------------------+------------------+
| Field                      | Type             |
+----------------------------+------------------+
| teachersubject_id          | int(10) unsigned |
| teachersubject_title       | varchar(255)     |
| teachersubject_description | text             |
+----------------------------+------------------+ My dbname.links.ini looks like this: [teacher_has_teachersubject] teacher_id = teacher:teacher_id teachersubject_id = teachersubject:teachersubject_id What I want is a query like: SELECT * from teacher, teacher_has_teachersubject, teachersubject WHERE teacher.teacher_id = teacher_has_teachersubject.teacher_id AND teacher_has_teachersubject.teachersubject_id = teachersubject.teachersubject_id AND teacher.teacher_surname = 'SomeTeachersSurname'
$teacher = DB_DataObject::factory('teacher'); $teacher->joinAdd(
    DB_DataObject::factory('teacher_has_teachersubject'),
    '' ); // <-- '' indicates join without 'JOIN'...
$teacher->joinAdd(
    DB_DataObject::factory('teachersubject'),
    '' ); // <-- '' indicates join without 'JOIN'...
$teacher->teacher_surname = 'SomeTeachersSurname'; $teacher->find(); use DB_DataObject::Debuglevel(1); to see what you are getting.. Regards Alan
What would be the right (and shortest) DataObject-statements to have the above query performed? I am a little bit confused whether to use getLinks or addJoin or combine these two... Thanks for your help!
-- Can you help out? Need Consulting Services or Know of a Job? http://www.akbkhome.com

« previous php.pear.general (#12866) next »