Hi fusupo,

Yout don't need to delete, you can udpate each row.

http://groups-beta.google.com/group/cake-php/search?group=cake-php&q=save+loop&qt_g=Search+this+group

HTH,

AD7six
Please note:
The manual/bakery is a good place to start any quest for info.
The cake search (at the time of writing) erroneously reports less/no
results for the google group.
The wiki may contain incorrect info - read at your own risk (it's
mainly user submitted) :)
You may get your answer quicker by asking on the IRC Channel (you can
access it with just a browser here: http://irc.cakephp.org).

On Oct 26, 12:48 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
> I'm building a rudamentary backend system which provides methods to
> upload files and store references to them (along with a few other
> infos) in the database.  The admin tool needs to be able to reorder the
> list which is displayed from the db data, so I added a field 'index' to
> use for sort order (ASC/DESC).  There are arrows on the interface which
> SHOULD effectively swap on row for another by copying they db info into
> two separate variables, deleting the current records and resaving the
> rows (only whith their 'index' values swaped).  This works 85% of the
> time, the other 15% the rows get reinserted but the index values ar the
> same...
>
> the controller code (in submovies_controller):
>
> function admin_moveUp($id,$parent_id){
>                 $this->autorender=false;
>                 
> $currRec=$this->Submovie->find(array('id'=>$id),null,null,false);
>                 $currRec=$currRec['Submovie'];
>                 $currIndex=$currRec['index'];
>                 if($currIndex>1){
>                         
> $prevRec=$this->Submovie->find(array('index'=>($currIndex-1)),null,null,false);
>                         $prevRec=$prevRec['Submovie'];
>                         //
>                         $saveTarg1= array( 'id'=>$currRec['id'], 
> 'title'=>$currRec['title'],
> 'url'=>$currRec['url'],
> 'subsection_id'=>$currRec['subsection_id'],'index'=>$prevRec['index']);
>                         //
>                         $saveTarg2= array( 
> 'id'=>$prevRec['id'],'title'=>$prevRec['title'],
> 'url'=>$prevRec['url'],
> 'subsection_id'=>$prevRec['subsection_id'],'index'=>$currRec['index']);
>                         
> if($saveTarg2['id']!=null&&$saveTarg1['index']!=$saveTarg2['index']){
>                                 if($this->Submovie->del($currRec['id'])){
>                                         
> if($this->Submovie->del($prevRec['id'])){
>                                                 
> if($this->Submovie->save($saveTarg1)){
>                                                         
> if($this->Submovie->save($saveTarg2)){
>                                                                 
> $this->redirect('/admin/submovies/listchildrenof/'.$parent_id);
>                                                         }
>                                                 }
>                                         }
>                                 }
>                         }else{
>                                 
> $this->redirect('/admin/submovies/listchildrenof/'.$parent_id);
>                         }
>                 }
>
>         }
>
> $id - the id(autoincrement) value of the record to be moved up
> $parent_id - in another table is a list of 'parent' categories, we keep
> track of who belongs to who with this
> DB contains fields id,subsection_id(parent_id),index(for
> sorting),title,url
>
> something to note is that data never disapears, and it's only the index
> field that is ever 'mis-written'...My questions are: is there an easier
> way to do this?(perhaps altering the single field 'index' in the DB
> rather than delete/save of two entire rows) Is it worth my trial to
> attempt a more direct SQL method? Where am I going wrong here?
> 
> any help is much appreciated...thanks in advance


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to