フォームから 2 つの配列を取得します。1 つはフィールド データの更新用で、もう 1 つは条件配列です。ここでは id を使用します。
出典: http://www.liuhai.org/sql-set-key-case-when-then
- function save_category_district($parame,$id){
- if(!is_array($parame) || !is_array($id)) return false;
- $sql="UPDATE ".table.'category_district'.' SET ';
- foreach($parame as $key=>$val){
- $csql.=$key.'=CASE id';
- foreach($parame[$key] as $key=>$val) {
- $csql.=" WHEN {$id[$key]} THEN '{$val}'"; // ここでの ID のキーは更新するデータのキーと同じである必要があることに注意してください。はフォームの数値キーです
- }
- $csql.=' END,';
- }
- $sql.=rtrim($csql,','); //このステップは最後の END の後のカンマを削除します
- $id=implode(',', $id); //ここではidが文字列になります
- $sql.=" WHERE id IN ({$id})";
- if(!$this->mydb-> query($sql)) return false;
- return true;
- }
コードをコピー
|