Thanks for the response. Basically its a bit like a shopping cart. I need a primary key just to keep each entry into the Product Inquiry List seperate, for example some of the lines i have in the database at the moment are:
ID | User ID | Pilid | pcode | quantity | ... 13 58 1 CM22 1 14 58 1 CD01 3 15 58 1 CM003 6 16 58 1 CM1/3 1 17 58 1 CM451 3 When i want to add a new pil i click on the function newpil(), which at the moment does this 18 58 2 -- -- This is what i want, but when i use the function newpil() again i want the latest pilid for that user to increment again, i.e. 19 58 3 -- -- What you have sent me worked if the Pilid was 1, it added a 1 to the 'pilid' in the find query, but once it gets to 2 it seems to stop, just keeps being pilid = 2. I know this is a wierd way to do it but it seemed to work in my head :/ Again thanks for the response. On 22 Sep, 23:06, brian <[email protected]> wrote: > The first param for find() should be one of 'first', 'all', 'list', etc. > > But, if all you want is a single value, use field(): > > function newpil() { > $pilid = $this->Pil->field( > 'pilid', > array( > 'Pil.user_id' => $this->Session->read('User.id') > ) > ) + 1; > > ... > > } > > That being said, I wonder if you're heading into other problems here. > Do you know that your table will have duplicates for pilid? Because > they will only ever be unique for a particular user_id. > > In fact, I don't know why you're not just using the primary key for > this. It's an auto_increment field and is designed for just this > purpose--increment the value for new records while also ensuring that > it's unique across all records. > > On Tue, Sep 22, 2009 at 5:50 PM, Steppio <[email protected]> wrote: > > > Hi everybody, this ones been doing my head in for some time now, hope > > you can help me out, im sure its very simple but i just cant get it > > working. Firstly the table structure is like this: > > > CREATE TABLE pil ( > > id int(11) unsigned NOT NULL auto_increment primary key, > > user_id int(11) unsigned not null, > > pilid int(11) unsigned NOT NULL, > > pcode varchar(255), > > quantity text not null, > > created DATETIME, > > modified DATETIME > > )ENGINE=InnoDB DEFAULT CHARSET=latin1; > > > And this is inside my pils_controller.php: > > > function newpil() { > > $user_id = $this->Session->read('User.id'); > > $pilid = $this->Pil->find( > > array( > > 'conditions' => array('Pil.user_id' => $user_id), > > 'fields' => array('Pil.pilid'), > > 'order' => array('Pil.pilid DESC'), > > )); > > > $pilid2 = ($pilid['Pil']['pilid'] + 1); > > > ... > > } > > > What i want is for the above function to pick out the last pil > > (product inquiry list) that the user set-up and to add a 1 to that. > > > Any ideas where im going wrong? Any help will be greatly appreciated. > > > Thank you > > Ste --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
