SIM0922.php 3.42 KB
<?PHP 
//*****************************************************************************
//* プログラム名:大項目更新処理
//* プログラムID:SIM0922.php
//* 機能        :大項目更新処理
//*****************************************************************************
header("Content-type: text/html; charset=EUC-JP");
include("./inc/session_start.inc");
include("./inc/SessionChk.inc");
include("./inc/dbcon.inc");

$mode = $_GET["mode"];
$seq = $_GET["seq"];
$kmode = $_GET["kmode"];
$kName = $_POST["kName"];
$kParent = $_POST["kParent"];

if($mode == "add"){
	//新規
	//seq設定
	$strSQL = "select * from koumoku_tbl order by koumoku_seq desc";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec) > 0){
		$objData = pg_fetch_object($objRec, 0);
		$newSeq = $objData->koumoku_seq + 1;
	}else{
		$newSeq = 1;
	}
	//disp_rank
	$strSQL2 = "select * from koumoku_tbl where koumoku_mode = 1 order by disp_rank desc";
	$objRec2 = pg_exec($strSQL2);
	if($objRec2==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec2) > 0){
		$objData2 = pg_fetch_object($objRec2, 0);
		$newRank = $objData2->disp_rank + 1;
	}else{
		$newRank = 1;
	}
	
	//INSERT
	$strSQL = "insert into koumoku_tbl (koumoku_seq, koumoku_mode, koumoku_parent, koumoku_name, disp_rank) values(".$newSeq.", ".$kmode.", ".$kParent.", '".$kName."', ".$newRank.")";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(INSERT)");
		exit;
	}

}else if($mode == "edt"){
	//修正
	$strSQL = "update koumoku_tbl set koumoku_name = '".$kName."', koumoku_parent = ".$kParent." where koumoku_seq = ".$seq;
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}

}else if($mode == "up" || $mode == "down"){
	if($mode == "up"){				//上へ
		$addNum = -1;
	}else if($mode == "down"){		//下へ
		$addNum = 1;
	}
	//変更対象の表示順取得
	//Parent取得
	$strSQL = "SELECT * FROM koumoku_tbl WHERE koumoku_seq = ".$seq;
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec) > 0){
		$objRec = pg_fetch_object($objRec, 0);
		$parentSeq = $objRec->koumoku_parent ;
	}

	$strSQL = "SELECT * FROM koumoku_tbl WHERE koumoku_mode = 1 AND koumoku_parent = ".$parentSeq." ORDER BY disp_rank" ;
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec) > 0){
		for ($i = 0; $i < pg_numrows($objRec); $i++) {
			//親Seqが同じレコードを配列に格納
			$objDspRec[$i] = pg_fetch_object($objRec, $i);
			$dspSeq[$i] = $objDspRec[$i]->koumoku_seq ;
			$dspRnk[$i] = $objDspRec[$i]->disp_rank ;
//デバッグ
//echo($i." : ".$dspRnk[$i]." : ".$dspSeq[$i]." : ".$seq."<br>");
			if ($dspSeq[$i] == $seq) {
				//自分が何番目かを取得
				$ownCnt = $i ;
			}
		}
	}

	//変更対象の前or後のデータ更新
	$strSQL = "UPDATE koumoku_tbl SET disp_rank = ".$dspRnk[$ownCnt]." WHERE koumoku_seq = ".$dspSeq[$ownCnt+$addNum]." AND koumoku_mode = 1"  ;
//echo($strSQL);
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}
	//変更対象のデータ更新
	$strSQL = "UPDATE koumoku_tbl SET disp_rank = ".$dspRnk[$ownCnt+$addNum]." WHERE koumoku_seq = ".$dspSeq[$ownCnt]." AND koumoku_mode = 1" ;
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}

}

header("Location:./SIM0920.php");
exit;
?>