рдХреБрдЫ рд▓реЛрдЧ рдкреВрд░реА рдХреНрд╖рдорддрд╛ рд╕реЗ рдЗрд╕ рдЕрджреНрднреБрдд рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреБрдЫ рдиреЗ рдЕрдкрдиреА рдХреБрдЫ рдЫрд┐рдкреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛, рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдХреНрд╖рдг рддрдХ рдХрд┐рдпрд╛ рдерд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреЗрдмрд▓ рдПрдХ рд╕реЗ рдХрдИ рдФрд░ рдХрдИ рд╕реЗ рдХрдИ рд░рд┐рд╢реНрддреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИрдВред рд╢рд╛рдпрдж рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рдФрд░ рд▓рд┐рдВрдХ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╣рдореЗрдВ рдЙрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдзреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдерд╛, рдЬрд╝реЗрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, Zend_Db_Table рдХреНрд▓рд╛рд╕, рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдкрд╣рд▓реА рдЙрдкрдпреЛрдЧреА рдЦреЛрдЬ рдпрд╣ рдереА рдХрд┐ Zend_Db_Table рдХрдиреЗрдХреНрд╢рди рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддрд╛рдХрд┐ рд╕рдВрджрд░реНрдн рдорд╛рди рдХреЛ рд╣рдЯрд╛рддреЗ / рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдирд┐рд░реНрднрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛рдП / рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо MyISAM рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдПрдХ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рдЕрдЦрдВрдбрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд╛рд╣рд┐рдП: рдЙрддреНрдкрд╛рдж, рдЗрдХрд╛рдЗрдпрд╛рдБ рдФрд░ рд╕рдореВрд╣ред рд╣рдо рдЦрд╛рджреНрдп рдЙрддреНрдкрд╛рджреЛрдВ (рдЙрддреНрдкрд╛рджреЛрдВ), рдорд╛рдк рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ (рдЗрдХрд╛рдЗрдпреЛрдВ) рдФрд░ рдЙрддреНрдкрд╛рдж рд╕рдореВрд╣реЛрдВ (рд╕рдореВрд╣реЛрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЖрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ SQL рдкреНрд░рд╢реНрди рд╣реИрдВ:
# рдЙрддреНрдкрд╛рдж рдЗрдХрд╛рдЗрдпрд╛рдБ DROP рдЯреЗрдмрд▓ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдпрджрд┐ `рдЗрдХрд╛рдЗрдпрд╛рдБтАЩ рд╣реИрдВ; рд░рдЪрдирд╛рддреНрдордХ рддрд╛рд▓рд┐рдХрд╛ `рдЗрдХрд╛рдЗрдпрд╛рдВ` (` Unit_id` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT, `Unit_name` VARCHAR (256) NOT NULL DEFAULTтАЩ, PRIMARY KEY (`Unit_id`)) рдЗрдВрдЬрди = MYISAM AUTO_INCREMENT = 1 DEFAULT CHARSET = INSERT INTO `рдЗрдХрд╛рдЗрдпрд╛рдВ` SET` Unit_name` = 'рдЧреНрд░рд╛рдо'; INSERT INTO `рдЗрдХрд╛рдЗрдпрд╛рдБ` SET` unit_name` = 'рдорд┐рд▓рд┐рд▓рд┐рдЯрд░'; рдЙрддреНрдкрд╛рдж рд╕рдореВрд╣реЛрдВ рдХреА # рд╕рд╛рд░рдгреА рдпрджрд┐ `рд╕рдореВрд╣реЛрдВтАЩ рдХреЛ рдЫреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝ рджреЗрдВ; рд░рдЪрдирд╛рддреНрдордХ рддрд╛рд▓рд┐рдХрд╛ `рд╕рдореВрд╣` (` group_id` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT, `group_name` VARCHAR (256) NOT NULL DEFAULT '', PRIMARY KEY (` group_id`)) рдЗрдВрдЬрди = MYISAM AUTO_INCREMENT = 1 DEFAULT CHARSET = INSERT INTO `рд╕рдореВрд╣реЛрдВ` рд╕реЗрдЯ` group_name` = 'рд╕рдмреНрдЬрд┐рдпреЛрдВ'; INSERT INTO `рд╕рдореВрд╣` SET` group_name` = 'рдлрд▓'; INSERT INTO `рд╕рдореВрд╣` SET` group_name` = 'рдбреЗрдпрд░реА'; INSERT INTO `рд╕рдореВрд╣` SET` group_name` = 'рдорд╛рдВрд╕'; # рдЙрддреНрдкрд╛рдж рддрд╛рд▓рд┐рдХрд╛ рдбреНрд░реЙрдк рдЯреЗрдмрд▓ рдпрджрд┐ рдЙрддреНрдкрд╛рдж `рдЙрддреНрдкрд╛рджреЛрдВ`; рд░рдЪрдирд╛рддреНрдордХ рдЯреЗрдмрд▓ `рдЙрддреНрдкрд╛рджреЛрдВ` (` product_id` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT, `group_id` INT (10) DEFAULT NULL,` Unit_id` INT (10) DEDULT NULL, `product_name` VARCHAR (256) NOT NULL DEFAULT '' , рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА (`product_id`)) рдЗрдВрдЬрди = MYISAM DEFAULT CHARSET = utf8; # рд╕рдмреНрдЬрд┐рдпрд╛рдВ INSERT INTO `рдЙрддреНрдкрд╛рджреЛрдВ '(` group_id`, `unit_id`,` product_name`) VALUES (1, 1,' рдЖрд▓реВ '); INSERT INTO `рдЙрддреНрдкрд╛рджреЛрдВ` (` group_id`, `unit_id`,` product_name`) VALUES (1, 1, ato рдЯрдорд╛рдЯрд░ тАЩ); # рдлрд▓ INSERT INTO `рдЙрддреНрдкрд╛рдж` (` group_id`, `unit_id`,` product_name`) рдореВрд▓реНрдп (2, 1, 'рдЦреБрдмрд╛рдиреА'); INSERT INTO `рдЙрддреНрдкрд╛рджреЛрдВ` (` group_id`, `unit_id`,` product_name`) VALUES (2, 1, 'Apple'); # рдбреЗрдпрд░реА INSERT INTO `рдЙрддреНрдкрд╛рджреЛрдВ` (` group_id`, `unit_id`,` product_name`) VALUES (3, 1, 'Brynza'); INSERT INTO `рдЙрддреНрдкрд╛рджреЛрдВ` (` group_id`, `unit_id`,` product_name`) VALUES (3, 2, 'рджреВрдз тАЩ); # рдорд╛рдВрд╕ INSERT INTO `рдЙрддреНрдкрд╛рджреЛрдВ` (` group_id`, `unit_id`,` product_name`) VALUES (4, 1,) Veal тАЩ); INSERT INTO `рдЙрддреНрдкрд╛рджреЛрдВ` (` group_id`, `unit_id`,` product_name`) VALUES (4, 1, 'рдкреЛрд░реНрдХ');
рдЕрдм рдЬрдм рдЯреЗрдмрд▓реНрд╕ рдмрдирд╛рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЯреЗрд╕реНрдЯ рдбреЗрдЯрд╛ рд╕реЗ рднрд░реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдкрдиреА рдЯреЗрдмрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ:
рд╡рд░реНрдЧ рдЙрддреНрдкрд╛рдж Zend_Db_Table_Abstract рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
{
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _name = 'рдЙрддреНрдкрд╛рдж';
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _primary = array ('product_id');
}
рд╡рд░реНрдЧ рдЗрдХрд╛рдЗрдпрд╛рдБ Zend_Db_Table_Abstract рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИрдВ
{
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _name = 'рдЗрдХрд╛рдЗрдпрд╛рдБ';
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _primary = array ('unit_id');
}
рд╡рд░реНрдЧ рд╕рдореВрд╣ Zend_Db_Table_Abstract рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
{
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _name = 'рд╕рдореВрд╣';
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _primary = array ('group_id');
}
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рд░рдЦрд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЙрддреНрдкрд╛рдж рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ productsTable = рдирдП рдЙрддреНрдкрд╛рдж;
$ productsRowset = $ productsTable-> fetchAll ();
foreach ($ рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ $ productsRowset) {
рдЧреВрдВрдЬ '<pre>'ред Print_r ($ row-> toArray (), true)ред '</ Pre>'ред PHP_EOL;
}
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, fetchAll рдкрджреНрдзрддрд┐ рдПрдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ $ рдкрдВрдХреНрддрд┐ рд╣рдорд╛рд░реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдпрджрд┐ рдЖрдк рдирд┐рдореНрди рдХреЛрдб рдХреЛ foreach рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдХреЙрд░реНрдб рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ:
рдЕрдЧрд░ ($ рдкрдВрдХреНрддрд┐-> product_name == 'рдкреЛрд░реНрдХ') {
$ рдкрдВрдХреНрддрд┐-> product_name = 'рдкреЛрд░реНрдХ рдмреАрдмреАрдХреНрдпреВ';
$ рдкрдВрдХреНрддрд┐-> рдмрдЪрд╛ ();
}
рд╣рдорд╛рд░реА $ рдкрдВрдХреНрддрд┐ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ Zend_Db_Table_Row_Abstract рд╕реЗ рд╕рд╣реЗрдЬреЗрдВ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ foreach рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рдХрд┐ Zend_Db_Table_Row_Abbrid рд╕реЗ рдЕрд▓рдЧ рд╡рд░реНрдЧ Zend_Db_Table_Row_Abstract рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред $ рдкрдВрдХреНрддрд┐ рд╕реНрд╡рдпрдВ Zend_Db_Table_Row рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред Zend_Db_Table_Row рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХреЗ рд▓рд┐рдП рдЧрд╣рди рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрди рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рд╕рдореВрд╣ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдЖрджреЗрд╢ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 100 рдХреЗ рд╕рд╛рде, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╕рд┐рд░ рдШреВрдордиреЗ рд▓рдЧрддрд╛ рд╣реИред рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВ, рдЗрд╕рдореЗрдВ рд╣рдордиреЗ group_id рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдПрдХ рдмрд╛рд╣рд░реА рдХрдиреЗрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЕрдкрдиреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рдлрд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЦрдбрд╝реЗ рдУрд╡реЗрд╢рди рдХрд╛ рдирд╛рдЯрдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдХрд┐ Zend_Db_Table рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ Zend рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд╛ рддрдВрддреНрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдкреИрд░реЗрдВрдЯ рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдирд┐рд░реНрднрд░ рдЯреЗрдмрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдореВрд╣ рд╡рд░реНрдЧ рдореЗрдВ, рдЖрдкрдХреЛ рдирд┐рдореНрди рдЧреБрдг рдЬреЛрдбрд╝рдХрд░ рдирд┐рд░реНрднрд░ рд╡рд░реНрдЧ рдЙрддреНрдкрд╛рдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _dependentTables = array ('рдЙрддреНрдкрд╛рдж');
рдпрд╣ рднреА рдЗрдХрд╛рдЗрдпреЛрдВ рд╡рд░реНрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреЗ рд╣рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдмрджрд▓рдиреЗ рдкрд░ рдЖрд╢реНрд░рд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрддреНрдкрд╛рдж рд╡рд░реНрдЧ рдореЗрдВ рдЗрдХрд╛рдЗрдпреЛрдВ рдФрд░ рд╕рдореВрд╣ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрддреНрдкрд╛рдж рд╡рд░реНрдЧ рдореЗрдВ $ _referenceMap рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рдирд╛:
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _referenceMap = рд╕рд░рдгреА (
'refUnits' => рд╕рд░рдгреА (
рд╕реНрд╡рдпрдВ :: COLUMNS => 'unit_id',
рд╕реНрд╡ :: REF_TABLE_CLASS => 'рдЗрдХрд╛рдЗрдпрд╛рдБ',
рд╕реНрд╡ :: REF_COLUMNS => 'unit_id',
рд╕реНрд╡рдпрдВ :: ON_DELETE => рд╕реНрд╡рдпрдВ :: CASCADE,
рд╕реНрд╡рдпрдВ :: ON_UPDATE => рд╕реНрд╡рдпрдВ :: CASCADE
)
'RefGroups' => рд╕рд░рдгреА (
рд╕реНрд╡рдпрдВ :: COLUMNS => 'group_id',
рд╕реНрд╡рдпрдВ :: REF_TABLE_CLASS => 'рд╕рдореВрд╣',
рд╕реНрд╡рдпрдВ :: REF_COLUMNS => 'group_id'
рд╕реНрд╡рдпрдВ :: ON_DELETE => рд╕реНрд╡рдпрдВ :: CASCADE,
рд╕реНрд╡рдпрдВ :: ON_UPDATE => рд╕реНрд╡рдпрдВ :: CASCADE
)
);
$ _ReferenceMap рд╕рдВрдкрддреНрддрд┐ рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХрдИ-рд╕реЗ-рдПрдХ рд╕рдВрдмрдВрдз рдорд┐рд▓рддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
1. рд╕рд╣рдпреЛрдЧреА рдХреБрдВрдЬреА
2. рд╕рдВрджрд░реНрдн рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо
3. рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд░реНрдЧ рдирд╛рдо рдЬрд┐рд╕реЗ рд╣рдо рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
4. рдЬрд┐рд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╣рдо рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕ рдлрд╝реАрд▓реНрдб рдХрд╛ рдирд╛рдо
5. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ
6. рдЕрджреНрдпрддрди рдХрд░рддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛
рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб:
рд╡рд░реНрдЧ рдЙрддреНрдкрд╛рдж Zend_Db_Table_Abstract рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
{
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _name = 'рдЙрддреНрдкрд╛рдж';
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _primary = array ('product_id');
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _referenceMap = рд╕рд░рдгреА (
'refUnits' => рд╕рд░рдгреА (
рд╕реНрд╡рдпрдВ :: COLUMNS => 'unit_id',
рд╕реНрд╡ :: REF_TABLE_CLASS => 'рдЗрдХрд╛рдЗрдпрд╛рдБ',
рд╕реНрд╡ :: REF_COLUMNS => 'unit_id',
рд╕реНрд╡рдпрдВ :: ON_DELETE => рд╕реНрд╡рдпрдВ :: CASCADE,
рд╕реНрд╡рдпрдВ :: ON_UPDATE => рд╕реНрд╡рдпрдВ :: CASCADE
)
'RefGroups' => рд╕рд░рдгреА (
рд╕реНрд╡рдпрдВ :: COLUMNS => 'group_id',
рд╕реНрд╡рдпрдВ :: REF_TABLE_CLASS => 'рд╕рдореВрд╣',
рд╕реНрд╡рдпрдВ :: REF_COLUMNS => 'group_id'
рд╕реНрд╡рдпрдВ :: ON_DELETE => рд╕реНрд╡рдпрдВ :: CASCADE,
рд╕реНрд╡рдпрдВ :: ON_UPDATE => рд╕реНрд╡рдпрдВ :: CASCADE
)
);
}
рд╡рд░реНрдЧ рдЗрдХрд╛рдЗрдпрд╛рдБ Zend_Db_Table_Abstract рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИрдВ
{
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _name = 'рдЗрдХрд╛рдЗрдпрд╛рдБ';
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _primary = array ('unit_id');
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _dependentTables = array ('рдЙрддреНрдкрд╛рдж');
}
рд╡рд░реНрдЧ рд╕рдореВрд╣ Zend_Db_Table_Abstract рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
{
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _name = 'рд╕рдореВрд╣';
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _primary = array ('group_id');
рд╕рдВрд░рдХреНрд╖рд┐рдд $ _dependentTables = array ('рдЙрддреНрдкрд╛рдж');
}
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдмрд▓ рд╣реИрдВ рдФрд░ рд╣рдо рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢рд╛рдВрддрд┐ рд╕реЗ рдЕрдкрдиреА рдЖрдИрдбреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реИрд╕реЗ, рдореИрдВ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рд╕рдореВрд╣ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рдпрдВ рдЙрддреНрдкрд╛рдж рдЬреЛ рдЗрди рд╕рдореВрд╣реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рд╡реЗ рднреА рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдкреНрд░рдпреЛрдЧ рдФрд░ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрдЯ рдХреНрд▓рд╛рд╕ Zend_Db_Table_Abstract рдХреЗ _cascadeUpdate рдФрд░ _cascadeDelete рдХреЗ рддрд░реАрдХреЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдбрд┐рд▓реАрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рддрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреНрд░рдорд╢рдГ $-> рд╕реЗрд╡ () рдФрд░ $ row-> рдбрд┐рд▓реАрдЯ () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк findParentRow рдореЗрдердб рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреИрд░реЗрдВрдЯ рд░рд┐рдХреЙрд░реНрдб (рдкрдВрдХреНрддрд┐) рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
$ productsTable = рдирдП рдЙрддреНрдкрд╛рдж;
$ productsRowset = $ productsTable-> fetchAll ();
foreach ($ рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ $ productsRowset) {
рдЧреВрдВрдЬ '-----------------------'ред PHP_EOL;
рдЧреВрдВрдЬ '<pre>'ред Print_r ($ row-> toArray (), true)ред '</ Pre>'ред PHP_EOL;
рдЧреВрдВрдЬ '<pre>'ред Print_r ($ row-> findParentRow ('Unit') -> toArray (), true)ред '</ Pre>'ред PHP_EOL;
рдЧреВрдВрдЬ '<pre>'ред Print_r ($ row-> findParentRow ('Group') -> toArray (), true)ред '</ Pre>'ред PHP_EOL;
рдЧреВрдВрдЬ '-----------------------'ред PHP_EOL;
}
рдпрд╛ рддреЛ findD dependentRowset рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рднреА рдирд┐рд░реНрднрд░ рд░рд┐рдХреЙрд░реНрдб (рдкрдВрдХреНрддрд┐рдпрд╛рдБ) рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
$ groupRowset = $ groupTable-> fetchAll ();
foreach ($ рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ $ groupRowset) {
рдЧреВрдВрдЬ '-----------------------'ред PHP_EOL;
рдЧреВрдВрдЬ '<pre>'ред Print_r ($ row-> toArray (), true)ред '</ Pre>'ред PHP_EOL;
рдЧреВрдВрдЬ '<pre>'ред Print_r ($ рдкрдВрдХреНрддрд┐-> findD dependentRowset ('рдЙрддреНрдкрд╛рдж') -> toArray (), рд╕рдЪ)ред '</ Pre>'ред PHP_EOL;
рдЧреВрдВрдЬ '-----------------------'ред PHP_EOL;
}
рдкреНрд░рд╛рдкреНрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк Zend_Db_Table_Row рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╣реИ
ps рд╣рд╛рдп рдЬреЛрд╕, рдЖрдкрдХреА рд╕рднреА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред