MNP100.php 10.2 KB
<?php 
//*****************************************************************************
//* 
//* プログラム名:アンケート機能
//* プログラムID:MNP100.php
//* 機能        :アンケート詳細画面
//* 
//*****************************************************************************
header("Content-type: text/html; charset=EUC-JP");

//***************************
//* インクルードファイル
//***************************
include("./include/session_start.inc");
include("./include/SessionChk.inc");

//***************************
//* 画面制御
//***************************
include('./include/smarty.conf');
include("./include/dbcon.inc");

//*** 配信基本情報 ***//
$strSQL  = "SELECT ";
$strSQL .= " mnp_kihon_tbl.mail_id      ,";
$strSQL .= " mnp_kihon_tbl.mail_subject ,";
$strSQL .= " mnp_kihon_tbl.mail_body    ,";
$strSQL .= " mnp_kihon_tbl.send_syain_cd,";
$strSQL .= " mnp_kihon_tbl.send_mode    ,";
$strSQL .= " mnp_kihon_tbl.send_date    ,";
$strSQL .= " mnp_kihon_tbl.send_time    ,";
$strSQL .= " mnp_kihon_tbl.ans_type     ,";
$strSQL .= " mnp_kihon_tbl.ans_limit    ,";
$strSQL .= " mnp_kihon_tbl.disp_mode    ,";
$strSQL .= " syain_tbl.name_kj_sei      ,";
$strSQL .= " syain_tbl.name_kj_mei       ";
$strSQL .= "FROM";
$strSQL .= " syain_tbl    , ";
$strSQL .= " mnp_kihon_tbl  ";
$strSQL .= "WHERE";
$strSQL .= " syain_tbl.syain_cd    = mnp_kihon_tbl.send_syain_cd AND ";
$strSQL .= " mnp_kihon_tbl.mail_id = ".$_REQUEST["mail_id"]." ";
$objRec = pg_exec($strSQL);
if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}
$objData = pg_fetch_object($objRec, 0);
$Detail_Data[0]  = $objData->mail_id;
$Detail_Data[1]  = $objData->mail_subject;
$Detail_Data[2]  = str_replace("\n", "<BR>", $objData->mail_body);
$Detail_Data[3]  = $objData->send_syain_cd;
$Detail_Data[4]  = $objData->send_mode;
$Detail_Data[5]  = $objData->send_date;
$Detail_Data[6]  = $objData->send_time;
$Detail_Data[7]  = $objData->ans_type;
$Detail_Data[8]  = $objData->ans_limit;
$Detail_Data[9]  = $objData->disp_mode;
$Detail_Data[10] = $objData->name_kj_sei." ".$objData->name_kj_mei;

$o_smarty->assign('Detail_Data' ,$Detail_Data);


//***** 現在回答数取得 *****//
$strSQL  = "SELECT ";
$strSQL .= " (SELECT COUNT(*) FROM mnp_syain_info AS chk1 WHERE chk1.mail_id=M.mail_id AND chk1.read_flg <> 2) AS n_ans_cnt ";
$strSQL .= "FROM ";
$strSQL .= " mnp_syain_info AS M ";
$strSQL .= "WHERE";
$strSQL .= " M.mail_id=".$_REQUEST["mail_id"]." ";
$strSQL .= "GROUP BY ";
$strSQL .= " M.mail_id";
//echo $strSQL."<hr>";
$objCntRec = pg_exec($strSQL);
if($objCntRec==false){
		echo("SQL実行に失敗しました(SELECT)b");
		exit;
}
$objCntData = pg_fetch_object($objCntRec, 0);
$N_ANS_CNT = $objCntData->n_ans_cnt;

//***** 回答者総数 *****//
$strSQL  = "SELECT ";
$strSQL .= " (SELECT COUNT(*) FROM mnp_syain_info WHERE mail_id=M.mail_id ) AS send_cnt ";
$strSQL .= "FROM ";
$strSQL .= " mnp_syain_info AS M ";
$strSQL .= "WHERE";
$strSQL .= " M.mail_id=".$_REQUEST["mail_id"]." ";
$strSQL .= "GROUP BY ";
$strSQL .= " M.mail_id";
//echo $strSQL."<hr>";
$objSendCntRec = pg_exec($strSQL);
if($objSendCntRec==false){
		echo("SQL実行に失敗しました(SELECT)b");
		exit;
}
$objSendCntData = pg_fetch_object($objSendCntRec, 0);
$SEND_CNT = $objSendCntData->send_cnt;


$strSQL  = "SELECT ";
$strSQL .= "  T1.ans_id           , ";
$strSQL .= "  T1.ans_name         , ";
$strSQL .= " (SELECT COUNT(*) FROM mnp_syain_ans AS T2 WHERE T1.mail_id=T2.mail_id AND T1.ans_id = T2.ans_id) AS data_cnt    ";
$strSQL .= "FROM ";
$strSQL .= "  mnp_answer_tbl AS T1 ";
$strSQL .= "WHERE ";
$strSQL .= " T1.mail_id=".$_REQUEST["mail_id"]." ";
$strSQL .= "ORDER BY ";
$strSQL .= "  T1.ans_id   ";
$objRec = pg_exec($strSQL);
if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)b");
		exit;
}
for ($intI=0; $intI < pg_numrows($objRec); $intI++){
		$objData = pg_fetch_object($objRec, $intI);
		$ANS_LIST[$intI][0] = $objData->ans_id;
		$ANS_LIST[$intI][1] = $objData->ans_name;
		$ANS_LIST[$intI][2] = $objData->data_cnt;

		$ANS_LIST[$intI][3] = "";
		$strSQL  = "SELECT ";
		$strSQL .= " syain_tbl.name_kj_sei ,";
		$strSQL .= " syain_tbl.name_kj_mei  ";
		$strSQL .= "FROM";
		$strSQL .= " syain_tbl    , ";
		$strSQL .= " mnp_syain_ans  ";
		$strSQL .= "WHERE";
		$strSQL .= " syain_tbl.syain_cd    = mnp_syain_ans.syain_cd   AND ";
		$strSQL .= " mnp_syain_ans.mail_id = ".$_REQUEST["mail_id"]." AND ";
		$strSQL .= " mnp_syain_ans.ans_id  = ".$objData->ans_id." ";
		$objUsrRec = pg_exec($strSQL);
		if($objUsrRec==false){
				echo("SQL実行に失敗しました(SELECT)b");
				exit;
		}
		for($intJ=0;$intJ<pg_numrows($objUsrRec);$intJ++){
				$objUsrData = pg_fetch_object($objUsrRec, $intJ);
				if ($ANS_LIST[$intI][3] !=""){
						$ANS_LIST[$intI][3] .= "<br>";
				}
				$ANS_LIST[$intI][3] .= "【".$objUsrData->name_kj_sei." ".$objUsrData->name_kj_mei."】 ";
		}

		$ANS_LIST[$intI][4] = "0";
		$ANS_LIST[$intI][5] = "";
}

//***** 回答分布率計算 *****//
if($Detail_Data[7]==0){
	//***** 複数回答の場合 *****//

	for($intI = 0; $intI < count($ANS_LIST); $intI++){
			$ANS_LIST[$intI][4] = round(($ANS_LIST[$intI][2]/$SEND_CNT)*1000)/10;
			//echo $ANS_LIST[$intI][2]."<br>";
			//echo $SEND_CNT."<hr>";
	}
	$N_ANS_Rate    = round(($N_ANS_CNT/$SEND_CNT)*1000)/10;
}else{
	$Max_Ans_Cnt = $N_ANS_CNT;
	for($intI = 0; $intI < count($ANS_LIST); $intI++){
			$Max_Ans_Cnt = $Max_Ans_Cnt+$ANS_LIST[$intI][2];
	}
	$N_ANS_Rate    = round(($N_ANS_CNT/$Max_Ans_Cnt)*1000)/10;

	//***** 単一回答の場合 *****//
	for($intI = 0; $intI < count($ANS_LIST); $intI++){
			$ANS_LIST[$intI][4] = round(($ANS_LIST[$intI][2]/$Max_Ans_Cnt)*1000)/10;
	}
}

$o_smarty->assign('N_ANS_CNT'  , $N_ANS_CNT);
$o_smarty->assign('N_ANS_Rate' , $N_ANS_Rate);

//***** 個人閲覧状況 *****//
$strSQL  = "SELECT ";
$strSQL .= " syain_tbl.syain_cd     ,";
$strSQL .= " syain_tbl.name_kj_sei  ,";
$strSQL .= " syain_tbl.name_kj_mei  ,";
$strSQL .= " mnp_syain_info.read_flg,";
$strSQL .= " mnp_syain_info.comment ,";
$strSQL .= " mnp_syain_info.ans_date,";
$strSQL .= " mnp_syain_info.ans_time ";
$strSQL .= "FROM ";
$strSQL .= " syain_tbl     , ";
$strSQL .= " mnp_syain_info ";
$strSQL .= "WHERE ";
$strSQL .= " syain_tbl.syain_cd     = mnp_syain_info.syain_cd AND ";
$strSQL .= " mnp_syain_info.mail_id = ".$_REQUEST["mail_id"]." ";
$strSQL .= "ORDER BY ";
$strSQL .= "  mnp_syain_info.read_flg,  ";
$strSQL .= "  syain_tbl. disp_rank      ";
$objRec = pg_exec($strSQL);
if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)b");
		exit;
}
for ($intI=0; $intI < pg_numrows($objRec); $intI++){
		$objData = pg_fetch_object($objRec, $intI);
		$User_List[$intI][0] = $objData->syain_cd;
		$User_List[$intI][1] = $objData->name_kj_sei." ".$objData->name_kj_mei;
		$User_List[$intI][2] = "";

		switch ($objData->read_flg) {
			case "0":	$User_List[$intI][2] = "<font color=#ff0000>未読</font>";	break;
			case "1":	$User_List[$intI][2] = "既読";	break;
			case "2":
					$strSQL  = "SELECT ";
					$strSQL .= " mnp_answer_tbl.ans_name ";
					$strSQL .= "FROM ";
					$strSQL .= " mnp_answer_tbl, ";
					$strSQL .= " mnp_syain_ans   ";
					$strSQL .= "WHERE ";
					$strSQL .= " mnp_answer_tbl.ans_id  =  mnp_syain_ans.ans_id    AND ";
					$strSQL .= " mnp_answer_tbl.mail_id = ".$_REQUEST["mail_id"]." AND ";
					$strSQL .= " mnp_syain_ans.mail_id  = ".$_REQUEST["mail_id"]." AND ";
					$strSQL .= " mnp_syain_ans.syain_cd = '".$objData->syain_cd."' ";
					$strSQL .= "ORDER BY ";
					$strSQL .= "  mnp_syain_ans.ans_id   ";
					//echo $strSQL;
					$objAnsRec = pg_exec($strSQL);
					if($objAnsRec==false){
							echo("SQL実行に失敗しました(SELECT)b");
							exit;
					}
					for($intJ=0;$intJ<pg_numrows($objAnsRec);$intJ++){
							$objAnsData = pg_fetch_object($objAnsRec, $intJ);
							if ($User_List[$intI][2] !=""){
									$User_List[$intI][2] .= "<br>";
							}
							$User_List[$intI][2] .= $objAnsData->ans_name;
					}
					break;
			default:
		}

		$User_List[$intI][3] = $objData->ans_date." ".$objData->ans_time;
		$User_List[$intI][4] = str_replace("\n", "<BR>", $objData->comment);
}
$o_smarty->assign('User_List'   , $User_List);

//*** 個人回答状況 ***//
$UserAns = array();
if ($_REQUEST["disp_mode"]=="0"){
		$strSQL  = "SELECT ";
		$strSQL .= " * ";
		$strSQL .= "FROM";
		$strSQL .= " mnp_syain_info ";
		$strSQL .= "WHERE";
		$strSQL .= " mail_id  = ".$_REQUEST["mail_id"]." AND ";
		$strSQL .= " syain_cd = '".$_SESSION["PHP_SYAIN_CD"]."'";
		$objRec = pg_exec($strSQL);
		if($objRec==false){
				echo("SQL実行に失敗しました(SELECT)");
				exit;
		}
		$objData = pg_fetch_object($objRec, 0);
		$UserAns[0]  = $objData->mail_id ;
		$UserAns[1]  = $objData->syain_cd;
		$UserAns[2]  = $objData->read_flg;
		$UserAns[3]  = $objData->comment;
		$UserAns[4]  = $objData->ans_date;
		$UserAns[5]  = $objData->ans_time;

		if ($objData->read_flg=="0"){
				$Read_Date = date("Y/m/d");
				$Read_Time = date("H:i:s");

				$strSQL  = "UPDATE";
				$strSQL .= " mnp_syain_info ";
				$strSQL .= "SET ";
				$strSQL .= " read_flg = 1,      ";
				$strSQL .= " ans_date = '".$Read_Date."', ";
				$strSQL .= " ans_time = '".$Read_Time."'  ";
				$strSQL .= "WHERE ";
				$strSQL .= " mail_id  = ".$_REQUEST["mail_id"]." AND ";
				$strSQL .= " syain_cd = '".$_SESSION["PHP_SYAIN_CD"]."'";
				$objInsRet = pg_exec($strSQL);
				if($objInsRet==false){
						echo("SQL実行に失敗しました(UPDATE)");
						exit;
				}

				$UserAns[2]  = "1";
				$UserAns[4]  = $Read_Date;
				$UserAns[5]  = $Read_Time;
		}

		for($intI = 0; $intI < count($ANS_LIST); $intI++){
				$strSQL  = "SELECT ";
				$strSQL .= " * ";
				$strSQL .= "FROM ";
				$strSQL .= " mnp_syain_ans ";
				$strSQL .= "WHERE";
				$strSQL .= " mail_id  = ".$_REQUEST["mail_id"]."        AND ";
				$strSQL .= " syain_cd = '".$_SESSION["PHP_SYAIN_CD"]."' AND ";
				$strSQL .= " ans_id   = ".$ANS_LIST[$intI][0];
				//echo $strSQL."<hr>";
				$objAnsRec = pg_exec($strSQL);
				if($objAnsRec==false){
						echo("SQL実行に失敗しました(SELECT)c");
						exit;
				}
				if(pg_numrows($objAnsRec)!=0){
						$ANS_LIST[$intI][5] = "checked";
				}
		}

}

$o_smarty->assign('UserAns'   , $UserAns);

$o_smarty->assign('ANS_LIST'   , $ANS_LIST);
$o_smarty->assign('mail_id'   , $_REQUEST["mail_id"]);
$o_smarty->assign('disp_mode' , $_REQUEST["disp_mode"]);


$o_smarty->assign('PHP_TITLE_NAME',$PHP_TITLE_NAME[20]);

$o_smarty->display('MNP100.tpl');


?>