Ejemplo n.º 1
0
 /**
  * ランキングの振り直し.
  *
  * @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'));
 }
Ejemplo n.º 2
0
 /**
  * カテゴリ変更時の移動処理を行う.
  *
  * ※この関数って、どこからも呼ばれていないのでは??
  *
  * @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);
 }