Re: DB_DataObject_FormBuilder and crossLinkExtraFields
| From: | James Stewart | Date: | Sat, 23 Sep 2006 02:37:38 +0000 |
| Subject: | Re: DB_DataObject_FormBuilder and crossLinkExtraFields | ||
| References: | 1 2 3 4 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-25218@lists.php.net to get a copy of this message | ||
On Sep 22, 2006, at 9:10 PM, Ian Warner wrote:
James Stewart wrote:It was auto-generated, and the keys entry is as shown. thanks. James.On Sep 22, 2006, at 7:48 PM, Justin Patrin wrote:Should also be underneath this : [conference_session_time_slot__keys] id = N Also check for spelling mistakes in keys and fields if hand done - this has got me a a few times.On 9/22/06, James Stewart <lists@jystewart.net> wrote:<snip>It's definitely declared as a primary key in the schema and the DO seems to have picked it up. Is there somewhere else I should be declaring it? The table definition is (I'm using MySQL): ------ CREATE TABLEThat generates a form with checkboxes for each time slot, and a select list of venues for each time slot. When I add a session to a new time slot everything works fine, with an entry being created for the appropriate time slot and location, but when I try to alter a location for an already selected time slot the update isn't completed and DB_DO_FB attempts to insert a new value in the database for just the location. eg. DataObjects_Conference_session_time_slot: QUERY: INSERT INTO conference_session_time_slot (location ) VALUES ( 6 ) where 6 is the value of the location I want to change to, but I expect something like: UPDATE conference_session_time_slot SET location = 6 WHERE id = X Looking through the code I can't see where DB_DO_FB actually works out which updates it's supposed to make for extra fields, so I'm not sure where to go next. Anyone got any ideas?Almost certainly you didn't set up your primary key on the conference_session_time_slot correctly.conference_session_time_slot(idint(11) NOT NULL auto_increment,session_idint(11) default NULL,time_slotint(11) NOT NULL default '0',locationint(11) default NULL, PRIMARY KEY (id) ) TYPE=MyISAM; ------ The do's .ini file holds: ------ [conference_session_time_slot] id = 129 session_id = 129 time_slot = 129 location = 1 ------