/** * ランキングの振り直し. * * @param Query $objQuery * @param integer $id 削除対象のmember_id * @return void|UPDATE の結果フラグ */ public function renumberRank(&$objQuery, $id) { // ランクの取得 $where1 = 'member_id = ?'; $rank = $objQuery->get('rank', 'dtb_member', $where1, array($id)); // Updateする値を作成する. $where2 = 'rank > ? AND del_flg <> 1'; // UPDATEの実行 - 削除したレコードより上のランキングを下げてRANKの空きを埋める。 return $objQuery->update('dtb_member', array(), $where2, array($rank), array('rank' => 'rank-1')); }
/** * カテゴリ変更時の移動処理を行う. * * ※この関数って、どこからも呼ばれていないのでは?? * * @param Query $objQuery Query インスタンス * @param string $table テーブル名 * @param string $id_name ID名 * @param string $cat_name カテゴリ名 * @param integer $old_catid 旧カテゴリID * @param integer $new_catid 新カテゴリID * @param integer $id ID * @return void */ public function moveCatRank($objQuery, $table, $id_name, $cat_name, $old_catid, $new_catid, $id) { if ($old_catid == $new_catid) { return; } // 旧カテゴリでのランク削除処理 // 移動レコードのランクを取得する。 $sqlval = array(); $where = "{$id_name} = ?"; $rank = $objQuery->get('rank', $table, $where, array($id)); // 削除レコードのランクより上のレコードを一つ下にずらす。 $where = "rank > ? AND {$cat_name} = ?"; $arrWhereVal = array($rank, $old_catid); $arrRawSql = array('rank' => '(rank - 1)'); $objQuery->update($table, $sqlval, $where, $arrWhereVal, $arrRawSql); // 新カテゴリでの登録処理 // 新カテゴリの最大ランクを取得する。 $max_rank = $objQuery->max('rank', $table, "{$cat_name} = ?", array($new_catid)) + 1; $sqlval = array('rank' => $max_rank); $where = "{$id_name} = ?"; $arrWhereVal = array($id); $objQuery->update($table, $sqlval, $where, $arrWhereVal); }