getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id); // ランクの最大値を取得する。 $maxno = $conn->getOne("SELECT max(rank) FROM dtb_member"); // ランクが最大値よりも小さい場合に実行する。 if($rank < $maxno) { // ランクがひとつ上のIDを取得する。 $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?"; $up_id = $conn->getOne($sqlse, $rank + 1); // ランク入れ替えの実行 $conn->query("BEGIN"); $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?"; $conn->query($sqlup, array($rank + 1, $id)); $conn->query($sqlup, array($rank, $up_id)); $conn->query("COMMIT"); } } // ランキングを下げる。 function lfRunkDown($conn, $id) { // 自身のランクを取得する。 $rank = $conn->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id); // ランクの最小値を取得する。 $minno = $conn->getOne("SELECT min(rank) FROM dtb_member"); // ランクが最大値よりも大きい場合に実行する。 if($rank > $minno) { // ランクがひとつ下のIDを取得する。 $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?"; $down_id = $conn->getOne($sqlse, $rank - 1); // ランク入れ替えの実行 $conn->query("BEGIN"); $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?"; $conn->query($sqlup, array($rank - 1, $id)); $conn->query($sqlup, array($rank, $down_id)); $conn->query("COMMIT"); } } ?>