Re: issue with saving data in model
Add $this-create(); to your loop before you do the save. If not, you are just updating the same record. Jeremy Burns Class Outfit jeremybu...@classoutfit.com http://www.classoutfit.com On 28 Mar 2011, at 16:21, Rishab Jain wrote: Hi All, I'm facing a very weird problem. I'm trying to save data in a loop where 1 person is sending msg to many people.. Here's the print_r of the 3 arrays before I call the 'save' function in the model. Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 2 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 4 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 6 [date] = 2011:03:28 10:52:41 ) ) The only difference here is the different 'recipient_uid_fk_users' in all the 3 arrays with values '2', '4', and, '6'. All I'm doing then is, foreach(recipient...) { /// prepare $arrayMessagesInfo / $this-save($arrayMessagesInfo); } The issue I'm facing is that only the first value gets inserted, and the rest of the two queries becomes 'update' queries. I'm not even mentioning the primary key in the array. These are the cakephp debugging logs: 4 INSERT INTO `messages` (`sender_uid_fk_users`, `subject`, `body`, `recipient_uid_fk_users`, `date`) VALUES (1, 'hey', 'hey', 2, '2011:03:28 10:48:33')1 0 5 SELECT LAST_INSERT_ID() AS insertID 1 1 0 6 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 7 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 8 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 4, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 1 0 9 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 10 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 11 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 6, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 Here's the table structure: CREATE TABLE `messages` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(100) NOT NULL, `body` varchar(500) NOT NULL, `sender_uid_fk_users` int(10) unsigned NOT NULL, `date` datetime NOT NULL, `recipient_uid_fk_users` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `sender_uid_fk_users` (`sender_uid_fk_users`), KEY `recipient_uid_fk_users` (`recipient_uid_fk_users`), ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | It would be great if anybody can help me out here. regards, Rishab -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php
Re: issue with saving data in model
Thanks Jeremy. It worked. If possible, do feed in your 2 cents on how this worked. regards, Rishab On 3/28/11, Jeremy Burns | Class Outfit jeremybu...@classoutfit.com wrote: Add $this-create(); to your loop before you do the save. If not, you are just updating the same record. Jeremy Burns Class Outfit jeremybu...@classoutfit.com http://www.classoutfit.com On 28 Mar 2011, at 16:21, Rishab Jain wrote: Hi All, I'm facing a very weird problem. I'm trying to save data in a loop where 1 person is sending msg to many people.. Here's the print_r of the 3 arrays before I call the 'save' function in the model. Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 2 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 4 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 6 [date] = 2011:03:28 10:52:41 ) ) The only difference here is the different 'recipient_uid_fk_users' in all the 3 arrays with values '2', '4', and, '6'. All I'm doing then is, foreach(recipient...) { /// prepare $arrayMessagesInfo / $this-save($arrayMessagesInfo); } The issue I'm facing is that only the first value gets inserted, and the rest of the two queries becomes 'update' queries. I'm not even mentioning the primary key in the array. These are the cakephp debugging logs: 4 INSERT INTO `messages` (`sender_uid_fk_users`, `subject`, `body`, `recipient_uid_fk_users`, `date`) VALUES (1, 'hey', 'hey', 2, '2011:03:28 10:48:33')1 0 5 SELECT LAST_INSERT_ID() AS insertID 1 1 0 6 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 7 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 8 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 4, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 1 0 9 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 10 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 11 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 6, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 Here's the table structure: CREATE TABLE `messages` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(100) NOT NULL, `body` varchar(500) NOT NULL, `sender_uid_fk_users` int(10) unsigned NOT NULL, `date` datetime NOT NULL, `recipient_uid_fk_users` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `sender_uid_fk_users` (`sender_uid_fk_users`), KEY `recipient_uid_fk_users` (`recipient_uid_fk_users`), ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | It would be great if anybody can help me out here. regards, Rishab -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php
Re: issue with saving data in model
There's no mystery (especially if you read the guide). As I said, if you don't include the create statement you are not creating a new record (the value of $this-id hasn't changed) therefore you stay on the first record you create or navigate to and only ever update. Jeremy Burns Class Outfit jeremybu...@classoutfit.com http://www.classoutfit.com On 28 Mar 2011, at 18:42, Rishab Jain wrote: Thanks Jeremy. It worked. If possible, do feed in your 2 cents on how this worked. regards, Rishab On 3/28/11, Jeremy Burns | Class Outfit jeremybu...@classoutfit.com wrote: Add $this-create(); to your loop before you do the save. If not, you are just updating the same record. Jeremy Burns Class Outfit jeremybu...@classoutfit.com http://www.classoutfit.com On 28 Mar 2011, at 16:21, Rishab Jain wrote: Hi All, I'm facing a very weird problem. I'm trying to save data in a loop where 1 person is sending msg to many people.. Here's the print_r of the 3 arrays before I call the 'save' function in the model. Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 2 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 4 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 6 [date] = 2011:03:28 10:52:41 ) ) The only difference here is the different 'recipient_uid_fk_users' in all the 3 arrays with values '2', '4', and, '6'. All I'm doing then is, foreach(recipient...) { /// prepare $arrayMessagesInfo / $this-save($arrayMessagesInfo); } The issue I'm facing is that only the first value gets inserted, and the rest of the two queries becomes 'update' queries. I'm not even mentioning the primary key in the array. These are the cakephp debugging logs: 4 INSERT INTO `messages` (`sender_uid_fk_users`, `subject`, `body`, `recipient_uid_fk_users`, `date`) VALUES (1, 'hey', 'hey', 2, '2011:03:28 10:48:33')1 0 5 SELECT LAST_INSERT_ID() AS insertID 1 1 0 6 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 7 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 8 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 4, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 1 0 9 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 10 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 11 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 6, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 Here's the table structure: CREATE TABLE `messages` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(100) NOT NULL, `body` varchar(500) NOT NULL, `sender_uid_fk_users` int(10) unsigned NOT NULL, `date` datetime NOT NULL, `recipient_uid_fk_users` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `sender_uid_fk_users` (`sender_uid_fk_users`), KEY `recipient_uid_fk_users` (`recipient_uid_fk_users`), ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | It would be great if anybody can help me out here. regards, Rishab -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group
RE: issue with saving data in model
$this-create(); API: http://api13.cakephp.org/class/model#method-Modelcreate Initializes the model for writing a new record, loading the default values for those fields that are not defined in $data, and clearing previous validation errors. Especially helpful for saving data in loops. -Original Message- From: cake-php@googlegroups.com [mailto:cake-php@googlegroups.com] On Behalf Of Rishab Jain Sent: Monday, March 28, 2011 3:12 PM To: cake-php@googlegroups.com Subject: Re: issue with saving data in model Thanks Jeremy. It worked. If possible, do feed in your 2 cents on how this worked. regards, Rishab On 3/28/11, Jeremy Burns | Class Outfit jeremybu...@classoutfit.com wrote: Add $this-create(); to your loop before you do the save. If not, you are just updating the same record. Jeremy Burns Class Outfit jeremybu...@classoutfit.com http://www.classoutfit.com On 28 Mar 2011, at 16:21, Rishab Jain wrote: Hi All, I'm facing a very weird problem. I'm trying to save data in a loop where 1 person is sending msg to many people.. Here's the print_r of the 3 arrays before I call the 'save' function in the model. Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 2 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 4 [date] = 2011:03:28 10:52:41 ) ) Array ( [Message] = Array ( [sender_uid_fk_users] = 1 [subject] = hey [body] = hey [recipient_uid_fk_users] = 6 [date] = 2011:03:28 10:52:41 ) ) The only difference here is the different 'recipient_uid_fk_users' in all the 3 arrays with values '2', '4', and, '6'. All I'm doing then is, foreach(recipient...) { /// prepare $arrayMessagesInfo / $this-save($arrayMessagesInfo); } The issue I'm facing is that only the first value gets inserted, and the rest of the two queries becomes 'update' queries. I'm not even mentioning the primary key in the array. These are the cakephp debugging logs: 4 INSERT INTO `messages` (`sender_uid_fk_users`, `subject`, `body`, `recipient_uid_fk_users`, `date`) VALUES (1, 'hey', 'hey', 2, '2011:03:28 10:48:33')1 0 5 SELECT LAST_INSERT_ID() AS insertID 1 1 0 6 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 7 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 8 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 4, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 1 0 9 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 10 SELECT COUNT(*) AS `count` FROM `messages` AS `Message` WHERE `Message`.`id` = 31 1 0 11 UPDATE `messages` SET `sender_uid_fk_users` = 1, `subject` = 'hey', `body` = 'hey', `recipient_uid_fk_users` = 6, `date` = '2011:03:28 10:48:33' WHERE `messages`.`id` = 3 Here's the table structure: CREATE TABLE `messages` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(100) NOT NULL, `body` varchar(500) NOT NULL, `sender_uid_fk_users` int(10) unsigned NOT NULL, `date` datetime NOT NULL, `recipient_uid_fk_users` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `sender_uid_fk_users` (`sender_uid_fk_users`), KEY `recipient_uid_fk_users` (`recipient_uid_fk_users`), ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | It would be great if anybody can help me out here. regards, Rishab -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions