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  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 |
>>
>>
>>

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  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://group

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  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
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