1.  None of the methods mentioned are thread safe - if you get
multiple concurrent executions you will run into conflicts.  You
should always rely on the database's auto-increment primary key, don't
create the PK yourself.  So if you want to use the Client primary key
in the client's account number, try:

// insert the new client, so we have a guaranteed unique id
$client_data = array( 'name'=>'Client name' );
$this->Client->create();
$this->Client->save( $client_data );

// now that the client has been saved, with no possibility for PK
conflict, update with the correct account number
$account="$branch-".date("y")."-00".$this->Client->id;
$this->Client->save( array( 'acct_numb' => $account ) );


2.  Even if you do want to use something where you pull the highest
id, at least do it the Cake way, none of this unnecessary custom SQL.

$highest_id = $this->Client->field('id', null, 'id DESC');


On Feb 10, 2:14 pm, brian_gaff <[EMAIL PROTECTED]> wrote:
> If you just added the record then
>
> $this->Model->getLastInserID(); //will give you the id you're looking
> for
>
> Now, suppose you added the record a while ago, and you just want to
> find the highest ID, then you can add the following to your app_model:
>
>  function getHighestID()
>  {
>   $res = $this->query("Select `{$this->name}.id` from `{$this->name}`
> ORDER BY `{$this->name}.id` DESC LIMIT 1";
>   return $res[$this->name]['id'];
>  }
>
> Then from any controller you can do:
>
>  $this->Model->getHighestID();
>
> On Feb 9, 3:00 pm, Salam Fall <[EMAIL PROTECTED]> wrote:
>
> > Just solved the problem
> > Here is how I have done it
> >                          $ret = $this->Client->query("Select id from 
> > clients order by id
> > DESC LIMIT 1");
> >                          $newid=$ret[0]['clients']['id'] + 1;
> >                          $yr=date("y");
> >                          $account="$branch-$yr-00$newid";
> >                         $this->data['Client']['acct_numb'] = $account;
> >                         $this->Client->create();
> >                         if ($this->Client->save($this->data)) etc....
>
> > Now my other question is how do i create my own classes and make them
> > available in the controller and the view??
>
> > On Feb 9, 5:34 pm, Salam Fall <[EMAIL PROTECTED]> wrote:
>
> > > Here is what i have done so far but it's not working
> > >                           $branch="SEN";
>
> > >                         $ret = $this->Client->findBySQL("Select id from 
> > > clients order by id
> > > DESC LIMIT 1");
> > >                         $lastId=$ret[0]['id'];
> > >                          $act=$lastId + 1;
> > >                         $yr=date("y");
> > >                          $account="$branch-$yr-00$act";
> > >                           $this->data['Client']['acct_numb'] =
> > > $account;
> > >                         $this->Client->create();
> > >                         if ($this->Client->save($this->data) etc....
>
> > > On Feb 9, 5:31 pm, Salam Fall <[EMAIL PROTECTED]> wrote:
>
> > > > Nubee here
>
> > > > How do I find the last record in the database and have it's ID value
> > > > in the controller and be able to manipulate it mathematically.
>
> > > > Because all i want to do is put the ID of the last record of the
> > > > Clients table add 1 to it and append the result to a string that will
> > > > be used to create the Client account number.
>
> > > > Also if I want to create my own custom functions or classes to add to
> > > > my cake APP how do I do that.
>
> > > > Thanks for your help.- Hide quoted text -
>
> > - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to