何かのリスト上で、順番を並び替えしたいとき。
例:1番のものを3番に、4番のものを2番に。希望の位置に入ったら、そのまま順番は後ろにスライド。
// $tool->SQL($SQL) ← sql実行する関数 // $tool->MAKE_UP_SQL2 ← insert文作成する関数 if(!empty($_POST)){ //前のナンバー $old_no = $_POST['old_no']; $value['no'] = $_POST['no']; $value['id'] = $_POST['id']; $value['modified'] = date("Y-m-d H:i:s"); $upkey = array("id"); $SQL=$tool->MAKE_UP_SQL2("cm_data", $value, $upkey, "1"); $tool->SQL($SQL); //入力ナンバーが前回より小さいとき if($old_no > $value['no']) { $sort_type = " desc"; } else { $sort_type = " asc"; } //mysqlでソートして全データを取得(no昇順, modified昇順・降順) $SQL = "select id, no from cm_data where del = 0 order by no asc, modified".$sort_type; $data = $tool->SQL($SQL); //データがある場合 if(!empty($data)){ $i = 1; //順番入れ直し foreach($data as $key => $value){ $value['no'] = $i; $value['id'] = $value['id']; $upkey = array("id"); $SQL = $tool->MAKE_UP_SQL2("cm_data", $value, $upkey, "1"); $tool->SQL($SQL); $i++; } } }