何かのリスト上で、順番を並び替えしたいとき。

例: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++;
		}
	}
}