Re: issue with saving data in model

2011-03-28 Thread Jeremy Burns | Class Outfit
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

2011-03-28 Thread Rishab Jain
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

2011-03-28 Thread Jeremy Burns | Class Outfit
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

2011-03-28 Thread Krissy Masters
$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