Changeset 20332 for branches/version-2_5-dev/data
- Timestamp:
- 2011/02/23 02:20:33 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php
r20116 r20332 61 61 */ 62 62 function action() { 63 $objQuery = new SC_Query();64 63 65 64 // ログインチェック 66 65 SC_Utils::sfIsSuccess(new SC_Session()); 67 66 68 // ランキングの変更 69 if($_GET['move'] == 'up') { 70 // 正当な数値であった場合 71 if(SC_Utils::sfIsInt($_GET['id'])){ 72 $this->lfRunkUp($objQuery, $_GET['id']); 73 // エラー処理 74 } else { 75 GC_Utils::gfPrintLog("error id=".$_GET['id']); 76 } 77 } else if($_GET['move'] == 'down') { 78 if(SC_Utils::sfIsInt($_GET['id'])){ 79 $this->lfRunkDown($objQuery, $_GET['id']); 80 // エラー処理 81 } else { 82 GC_Utils::gfPrintLog("error id=".$_GET['id']); 67 // チェック後のデータを格納 68 $arrClean = array(); 69 70 // $_GET['move'] が想定値かどうかチェック 71 switch($_GET['move']) { 72 case 'up': 73 case 'down': 74 $arrClean['move'] = $_GET['move']; 75 break; 76 default: 77 $arrClean['move'] = ""; 78 break; 79 } 80 81 82 // 正当な数値であればOK 83 if (SC_Utils::sfIsInt($_GET['id'])) { 84 $arrClean['id'] = $_GET['id']; 85 86 switch($arrClean['move']) { 87 case 'up': 88 $this->lfRunkUp($arrClean['id']); 89 break; 90 91 case 'down': 92 $this->lfRunkDown($arrClean['id']); 93 break; 94 95 default: 96 break; 83 97 } 84 98 } 85 99 100 // エラー処理 101 else { 102 GC_Utils::gfPrintLog("error id=".$_GET['id']); 103 } 104 86 105 // ページの表示 87 106 SC_Response_Ex::sendRedirect(ADMIN_SYSTEM_URLPATH); … … 98 117 99 118 // ランキングを上げる。 100 function lfRunkUp($objQuery, $id) { 119 function lfRunkUp($id) { 120 $objQuery =& SC_Query::getSingletonInstance(); 121 101 122 // 自身のランクを取得する。 102 $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id); 123 $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ?", array($id)); 124 103 125 // ランクの最大値を取得する。 104 126 $maxno = $objQuery->getOne("SELECT max(rank) FROM dtb_member"); … … 108 130 $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?"; 109 131 $up_id = $objQuery->getOne($sqlse, $rank + 1); 132 133 // Updateする値を作成する. 134 $sqlVal1 = array(); 135 $sqlVal2 = array(); 136 $sqlVal1['rank'] = $rank + 1; 137 $sqlVal2['rank'] = $rank; 138 $where = "member_id = ?"; 139 110 140 // ランク入れ替えの実行 111 141 $objQuery->begin(); 112 $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?"; 113 $objQuery->query($sqlup, array($rank + 1, $id)); 114 $objQuery->query($sqlup, array($rank, $up_id)); 142 $objQuery->update("dtb_member", $sqlVal1, $where, array($id)); 143 $objQuery->update("dtb_member", $sqlVal2, $where, array($up_id)); 115 144 $objQuery->commit(); 116 145 } … … 118 147 119 148 // ランキングを下げる。 120 function lfRunkDown($objQuery, $id) { 149 function lfRunkDown($id) { 150 $objQuery =& SC_Query::getSingletonInstance(); 151 121 152 // 自身のランクを取得する。 122 $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id);153 $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ?", array($id)); 123 154 // ランクの最小値を取得する。 124 155 $minno = $objQuery->getOne("SELECT min(rank) FROM dtb_member"); … … 128 159 $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?"; 129 160 $down_id = $objQuery->getOne($sqlse, $rank - 1); 161 162 // Updateする値を作成する. 163 $sqlVal1 = array(); 164 $sqlVal2 = array(); 165 $sqlVal1['rank'] = $rank - 1; 166 $sqlVal2['rank'] = $rank; 167 $where = "member_id = ?"; 168 130 169 // ランク入れ替えの実行 131 170 $objQuery->begin(); 132 $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?"; 133 $objQuery->query($sqlup, array($rank - 1, $id)); 134 $objQuery->query($sqlup, array($rank, $down_id)); 135 $objQuery->query("COMMIT"); 171 $objQuery->update("dtb_member", $sqlVal1, $where, array($id)); 172 $objQuery->update("dtb_member", $sqlVal2, $where, array($down_id)); 173 $objQuery->commit(); 136 174 } 137 175 }
Note: See TracChangeset
for help on using the changeset viewer.