CON010_2.php 3.63 KB
<?php 
//*****************************************************************************
//* 
//* プログラム名:業務報告・指示カテゴリDB設定処理(表示順位)
//* プログラムID:CON010_2
//* 機能        :業務報告・指示カテゴリ情報をDB設定する
//* 作成者      :
//* 
//*****************************************************************************

header("Content-type: text/html; charset = EUC-JP");
include("include/session_start.inc");
include("include/SessionChk.inc");
include("include/dbcon.inc");

//表示順位の最大値、最小値を取得
$strSql = "SELECT MAX(disp_rank) as maxValue,MIN(disp_rank) as minValue FROM mst_metcategory";
$rsResult = pg_exec($pg_con, $strSql);
$intDispRankMaxValue = pg_result($rsResult, 0, "maxValue");
$intDispRankMinValue = pg_result($rsResult, 0, "minValue");

$category_no = $_POST["category_no"];

switch ($up_down_flg) {
	case "up":
		//選択されたカテゴリのレコードを抽出
		$strSql = "SELECT category_no, category_name, category_date, disp_rank FROM mst_metcategory WHERE category_no=".$category_no;
		$rsResult = pg_exec($pg_con, $strSql);
		//最小値の場合処理なし
		if (pg_result($rsResult, 0, "disp_rank") == $intDispRankMinValue) {
			break;
		}
		//業務報告・指示カテゴリマスタの全レコード抽出
		$strSql = "SELECT category_no, category_name, category_date, disp_rank FROM mst_metcategory ORDER BY disp_rank";
		$rsResult2 = pg_exec($pg_con, $strSql);
		$intRsCnt = pg_numrows($rsResult2);
		for ($i = 1 ; $i <= $intRsCnt - 1 ; $i++) {
			if (pg_result($rsResult, 0, "disp_rank") == pg_result($rsResult2, $i, "disp_rank")) {
				$intDispWork = pg_result($rsResult2, $i-1, "disp_rank");	//1つ前レコードの表示順位
				$intCategoryWork = pg_result($rsResult2, $i, "category_no");
				$strSqlUp = "UPDATE mst_metcategory SET ";
				$strSqlUp .= "disp_rank = $intDispWork ";
				$strSqlUp .= "WHERE category_no = $intCategoryWork";

				$intDispWork = pg_result($rsResult2, $i, "disp_rank");
				$intCategoryWork = pg_result($rsResult2, $i-1, "category_no");
				$strSqlDown = "UPDATE mst_metcategory SET ";
				$strSqlDown .= "disp_rank = $intDispWork ";
				$strSqlDown .= "WHERE category_no = $intCategoryWork";
				$rsResult = pg_exec($pg_con,$strSqlUp);
				$rsResult = pg_exec($pg_con,$strSqlDown);
				break;
			}
		}
		break;

	case "down":
		//選択されたカテゴリのレコードを抽出
		$strSql = "SELECT category_no, category_name, category_date, disp_rank FROM mst_metcategory WHERE category_no=".$category_no;
		$rsResult = pg_exec($pg_con, $strSql);
		//最大値の場合処理なし
		if (pg_result($rsResult, 0, "disp_rank") == $intDispRankMaxValue) {
			break;
		}
		//業務報告・指示カテゴリマスタの全レコード抽出
		$strSql = "SELECT category_no, category_name, category_date, disp_rank FROM mst_metcategory ORDER BY disp_rank";
		$rsResult2 = pg_exec($pg_con,$strSql);
		$intRsCnt = pg_numrows($rsResult2);
		for ($i = 0 ; $i <= $intRsCnt - 2 ; $i++) {
			if (pg_result($rsResult, 0, "disp_rank") == pg_result($rsResult2, $i, "disp_rank")) {
				$intDispWork = pg_result($rsResult2, $i+1, "disp_rank");	//1つ後レコードの表示順位
				$intCategoryWork = pg_result($rsResult2, $i, "category_no");
				$strSqlUp = "UPDATE mst_metcategory SET ";
				$strSqlUp .= "disp_rank = $intDispWork ";
				$strSqlUp .= "WHERE category_no = $intCategoryWork";

				$intDispWork = pg_result($rsResult2, $i, "disp_rank");
				$intCategoryWork = pg_result($rsResult2, $i+1, "category_no");
				$strSqlDown = "UPDATE mst_metcategory SET ";
				$strSqlDown .= "disp_rank = $intDispWork ";
				$strSqlDown .= "WHERE category_no = $intCategoryWork";
				$rsResult = pg_exec($pg_con,$strSqlUp);
				$rsResult = pg_exec($pg_con,$strSqlDown);
				break;
			}
		}
		break;
}

header("Location: CON010.php");
?>