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