##一次執行多條數據排序操作1
>序號order從1開始的遞增整數,無間斷無重復
為保證序號不間斷、無重復,每次修改數據的序號后,都要對其他的數據序號進行順移。
同時移動多條數據是指保證序號不間斷、無重復的情況下,之后的數據移動不影響之前移動過的數據的序號。
**移動流程**
~~~
1.把數據移動到指定位置(修改序號)
標記一個空位(數據原來的位置序號)
標記一個重復位(數據移動后的位置序號)
2.對空位和重復位排序
3.移動每對空位和重復位之間的數據
空位大于重復位:下移
空位小于重復位:上移
~~~
* * * * *
示意圖1:

* * * * *
php實例
~~~
//要移動的數據
$rows = array(
array(
"id"=>3,/*唯一標識*/
"moveto"=>8/*目標位置*/
),
array(
"id"=>4,
"moveto"=>9
),
array(
"id"=>12,
"moveto"=>2
)
...
)
$kong = array();//空位
$chong = array();//重復位
$locked = array();//鎖定數據
foreach($rows as $row){
$locked[] = $row[$id];
$kong[] = $o = $db->result("SELECT order FROM ".DB_TABLEPRE."user WHERE id=$row[$id] ");//數據原來的位置o
$chong[] = $n = $row[moveto];//目標位置n
$db->query("update user set order=$n WHERE id= ".$row[$id]);//移動該條數據
}
sort($kong);
sort($chong);
foreach($kong as $i=>$k){
$c = $chong[$i];
if($k == $c){
//不移動
}elseif($k > $c){
//下移
$db->query("update user set order=order+1 WHERE id NOT IN(implode(',',$locked)) AND order<=$k AND order>=$c");
}else{
//上移
$db->query("update user set order=order-1 WHERE id NOT IN(implode(',',$locked)) AND order>=$k AND order<=$c");
}
~~~
- 腦袋緩存
- 微信框架
- 案例展示
- 網絡營銷術語
- 打印控件
- 邏輯值交換律
- 常用網址
- 開發文檔類
- W3C
- PHP
- 算法
- RSA非對稱加密算法
- DES對稱加密算法
- SHA安全散列算法
- AES加密
- 跌了n倍再漲m倍回到原價
- 多條數據同時排序算法1
- 多條數據同時排序算法2
- 工具
- 視頻工具
- 音頻工具
- 電子書閱讀器
- PHP學習筆記
- 函數
- 文件系統函數
- 搜索函數
- 時間函數
- 獲取當前時間
- 變量處理函數
- 獲取所有已定義變量
- 文本函數
- 文本替換
- ASSIC轉換
- 文本截取
- 大小寫轉換
- 二進制比較字符串
- 數組函數
- 定義數組
- 數組變量導入符號表
- 數組排序
- 數組與字符串轉換
- 數學函數
- 進制轉換
- 配置常用項
- 短標記
- PHP內置WebServer
- 數據庫擴展
- 抽象層PDO
- 連接管理
- 執行SQL命令
- 預處理
- MYSQL擴展
- 連接管理
- 選擇數據庫
- 清除BOM
- bashShell筆記
- vim基礎
- 常用指令
- 用戶操作
- 網絡配置
- 文件權限
- Markdown筆記
- 編輯器&閱讀器
- 看云
- mackpad
- 語法
- 轉義字符
- git學習筆記
- 常用命令
- 基本命令
- 遠程命令
- 創建倉庫
- 修改配置
- 存檔工作區
- WEB服務器
- 服務器技術的發展
- rewrite
- Go語言
- 在線開發環境
- bootstrap學習筆記
- 布局柵格
- CSS學習筆記
- 圓角
- 強制不換行
- 帶透明度的顏色值rbga
- 漸變動畫
- 滾動條控制
- 漸變過渡
- 透明度
- 背景漸變
- MYSQL筆記
- 字段類型
- SQL命令
- 用戶管理-權限
- 重載用戶權限
- 修復表格
- 優化表格
- 替換
- 編輯字段
- 庫表的基本操作
- 環境變量
- 連表刪除
- HybridApp
- 開發框架
- 即時通訊架構
- 網易云信
- 消息推送
- 消息推送協議
- 第三方消息推送方案
- javascript
- json與字符串互解析
- 大小寫轉換
- jQuery序列化表單
- 判斷是否移動端
- 獲取url中的參數
- 獲取格式化的日期
- jQuery操作checked
- js實現繼承
- 難點講解
- json排序
- 特殊算法
- cookie操作
- 原生的touch事件
- HTML
- 視頻標簽
- zyMedia視頻插件
- 百度地圖URI
- DEDE織夢筆記
- 水印無效
- 支付
- nodejs
- 常用命令
- NPM