source: branches/feature-module-update/html/admin/system/rank.php @ 15080

Revision 15080, 2.3 KB checked in by nanasess, 17 years ago (diff)

svn properties 設定

  • svn:mime-type - application/x-httpd-php; charset=UTF-8
  • svn:keywords - Id
  • Property svn:keywords set to Id
  • Property svn:mime-type set to application/x-httpd-php; charset=UTF-8
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8
9$conn = new SC_DbConn();
10
11// 認証可否の判定
12$objSess = new SC_Session();
13sfIsSuccess($objSess);
14
15// ランキングの変更
16if($_GET['move'] == 'up') {
17    // 正当な数値であった場合
18    if(sfIsInt($_GET['id'])){
19        lfRunkUp($conn, $_GET['id']);
20    } else {
21        // エラー処理
22        gfPrintLog("error id=".$_GET['id']);
23    }
24} else if($_GET['move'] == 'down') {
25    if(sfIsInt($_GET['id'])){
26        lfRunkDown($conn, $_GET['id']);
27    }  else {
28        // エラー処理
29        gfPrintLog("error id=".$_GET['id']);
30    }
31}
32
33// ページの表示
34$location = "Location: " . URL_SYSTEM_TOP . "?pageno=".$_GET['pageno'];
35header($location);
36
37// ランキングを上げる。
38function lfRunkUp($conn, $id) {
39    // 自身のランクを取得する。
40    $rank = $conn->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id);
41    // ランクの最大値を取得する。
42    $maxno = $conn->getOne("SELECT max(rank) FROM dtb_member");
43    // ランクが最大値よりも小さい場合に実行する。
44    if($rank < $maxno) {
45        // ランクがひとつ上のIDを取得する。
46        $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?";
47        $up_id = $conn->getOne($sqlse, $rank + 1);
48        // ランク入れ替えの実行
49        $conn->query("BEGIN");
50        $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?";
51        $conn->query($sqlup, array($rank + 1, $id));
52        $conn->query($sqlup, array($rank, $up_id));
53        $conn->query("COMMIT");
54    }
55}
56
57// ランキングを下げる。
58function lfRunkDown($conn, $id) {
59    // 自身のランクを取得する。
60    $rank = $conn->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id);
61    // ランクの最小値を取得する。
62    $minno = $conn->getOne("SELECT min(rank) FROM dtb_member");
63    // ランクが最大値よりも大きい場合に実行する。
64    if($rank > $minno) {
65        // ランクがひとつ下のIDを取得する。
66        $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?";
67        $down_id = $conn->getOne($sqlse, $rank - 1);
68        // ランク入れ替えの実行
69        $conn->query("BEGIN");
70        $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?";
71        $conn->query($sqlup, array($rank - 1, $id));
72        $conn->query($sqlup, array($rank, $down_id));
73        $conn->query("COMMIT");
74    }
75}   
76?>
Note: See TracBrowser for help on using the repository browser.