- Timestamp:
- 2007/07/20 15:58:59 (19 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
-
. (copied) (copied from branches/rel) (1 prop)
-
html (copied) (copied from branches/rel/html)
-
html/admin/contents/csv_sql.php (modified) (22 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/html/admin/contents/csv_sql.php
r12157 r15078 18 18 $this->tpl_subno_csv = 'csv_sql'; 19 19 $this->tpl_mainno = "contents"; 20 $this->tpl_subtitle = 'CSV ½ÐÎÏÀßÄê';20 $this->tpl_subtitle = 'CSV出力設定'; 21 21 } 22 22 } … … 28 28 $objPage->arrSubnaviName = $arrSubnaviName; 29 29 30 // ǧ¾Ú²ÄÈݤÎȽÄê30 // 認証可否の判定 31 31 $objSess = new SC_Session(); 32 32 sfIsSuccess($objSess); 33 33 34 // SQL_ID ¤Î¼èÆÀ34 // SQL_IDの取得 35 35 if ($_POST['sql_id'] != "") { 36 36 $sql_id = $_POST['sql_id']; … … 44 44 45 45 switch($_POST['mode']) { 46 // ¥Ç¡¼¥¿¤ÎÅÐÏ¿46 // データの登録 47 47 case "confirm": 48 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯48 // エラーチェック 49 49 $objPage->arrErr = lfCheckError($_POST); 50 50 51 51 if (count($objPage->arrErr) <= 0){ 52 // ¥Ç¡¼¥¿¤Î¹¹¿·52 // データの更新 53 53 $sql_id = lfUpdData($sql_id, $_POST); 54 // ´°Î»¥á¥Ã¥»¡¼¥¸É½¼¨55 $objPage->tpl_onload = "alert(' ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');";56 } 57 break; 58 59 // ³Îǧ²èÌÌ54 // 完了メッセージ表示 55 $objPage->tpl_onload = "alert('登録が完了しました。');"; 56 } 57 break; 58 59 // 確認画面 60 60 case "preview": 61 // SQL ʸɽ¼¨61 // SQL文表示 62 62 $sql = "SELECT \n" . $_POST['csv_sql']; 63 63 $objPage->sql = $sql; 64 64 65 // ¥¨¥é¡¼É½¼¨65 // エラー表示 66 66 $objErrMsg = lfCheckSQL($_POST); 67 67 if ($objErrMsg != "") { … … 73 73 $objPage->objView = $objView; 74 74 75 // ²èÌ̤Îɽ¼¨75 // 画面の表示 76 76 $objView->assignobj($objPage); 77 77 $objView->display('contents/csv_sql_view.tpl'); … … 79 79 break; 80 80 81 // ¿·µ¬ºîÀ®81 // 新規作成 82 82 case "new_page": 83 83 header("location: ./csv_sql.php"); 84 84 break; 85 85 86 // ¥Ç¡¼¥¿ºï½ü86 // データ削除 87 87 case "delete": 88 88 lfDelData($sql_id); … … 91 91 92 92 case "csv_output": 93 // CSV ½ÐÎϥǡ¼¥¿¼èÆÀ93 // CSV出力データ取得 94 94 $arrCsvData = lfGetSqlList(" WHERE sql_id = ?", array($_POST['csv_output_id'])); 95 95 … … 109 109 110 110 $data = lfGetCSVData($arrCsvOutputData, $arrKey); 111 // CSV ½ÐÎÏ111 // CSV出力 112 112 sfCSVDownload($header.$data); 113 113 exit; 114 114 break; 115 115 }else{ 116 $objPage->tpl_onload = "alert(' ½ÐÎϥǡ¼¥¿¤¬¤¢¤ê¤Þ¤»¤ó¡£');";116 $objPage->tpl_onload = "alert('出力データがありません。');"; 117 117 $sql_id = ""; 118 118 $_POST=""; … … 121 121 } 122 122 123 // mode ¤¬ confirm °Ê³°¤Î¤È¤¤Ï´°Î»¥á¥Ã¥»¡¼¥¸¤Ï½ÐÎϤ·¤Ê¤¤123 // mode が confirm 以外のときは完了メッセージは出力しない 124 124 if ($mode != "confirm" and $mode != "csv_output") { 125 125 $objPage->tpl_onload = ""; 126 126 } 127 127 128 // ÅÐÏ¿ºÑ¤ßSQL°ìÍ÷¼èÆÀ128 // 登録済みSQL一覧取得 129 129 $arrSqlList = lfGetSqlList(); 130 130 131 // ÊÔ½¸ÍÑSQL¥Ç¡¼¥¿¤Î¼èÆÀ131 // 編集用SQLデータの取得 132 132 if ($sql_id != "") { 133 133 $arrSqlData = lfGetSqlList(" WHERE sql_id = ?", array($sql_id)); 134 134 } 135 135 136 // ¥Æ¡¼¥Ö¥ë°ìÍ÷¤ò¼èÆÀ¤¹¤ë136 // テーブル一覧を取得する 137 137 $arrTableList = lfGetTableList(); 138 138 $arrTableList = sfSwapArray($arrTableList); 139 139 140 // ¸½ºßÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥Ö¥ë¤ò¼èÆÀ¤¹¤ë140 // 現在選択されているテーブルを取得する 141 141 if ($_POST['selectTable'] == ""){ 142 142 $selectTable = $arrTableList['table_name'][0]; … … 145 145 } 146 146 147 // ¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë147 // カラム一覧を取得する 148 148 $arrColList = lfGetColumnList($selectTable); 149 149 $arrColList = sfSwapArray($arrColList); 150 150 151 // ɽ¼¨¤µ¤»¤ëÆâÍÆ¤òÊÔ½¸151 // 表示させる内容を編集 152 152 foreach ($arrTableList['description'] as $key => $val) { 153 $arrTableList['description'][$key] = $arrTableList['table_name'][$key] . " ¡§" . $arrTableList['description'][$key];153 $arrTableList['description'][$key] = $arrTableList['table_name'][$key] . ":" . $arrTableList['description'][$key]; 154 154 } 155 155 foreach ($arrColList['description'] as $key => $val) { 156 $arrColList['description'][$key] = $arrColList['column_name'][$key] . " ¡§" . $arrColList['description'][$key];156 $arrColList['description'][$key] = $arrColList['column_name'][$key] . ":" . $arrColList['description'][$key]; 157 157 } 158 158 … … 162 162 $arrColList["description"] = array_merge($arrColList["description"], $arrDiff); 163 163 164 // ¥Æ¥ó¥×¥ì¡¼¥È¤Ë½ÐÎϤ¹¤ë¥Ç¡¼¥¿¤ò¥»¥Ã¥È165 $objPage->arrSqlList = $arrSqlList; // SQL °ìÍ÷166 $objPage->arrTableList = sfarrCombine($arrTableList['table_name'], $arrTableList['description']); // ¥Æ¡¼¥Ö¥ë°ìÍ÷167 $objPage->arrColList = sfarrCombine($arrColList['column_name'],$arrColList['description']); // ¥«¥é¥à°ìÍ÷168 $objPage->selectTable = $selectTable; // ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥Ö¥ë169 $objPage->sql_id = $sql_id; // ÁªÂò¤µ¤ì¤Æ¤¤¤ëSQL170 171 // POST ¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë164 // テンプレートに出力するデータをセット 165 $objPage->arrSqlList = $arrSqlList; // SQL一覧 166 $objPage->arrTableList = sfarrCombine($arrTableList['table_name'], $arrTableList['description']); // テーブル一覧 167 $objPage->arrColList = sfarrCombine($arrColList['column_name'],$arrColList['description']); // カラム一覧 168 $objPage->selectTable = $selectTable; // 選択されているテーブル 169 $objPage->sql_id = $sql_id; // 選択されているSQL 170 171 // POSTされたデータをセットする 172 172 if (count($_POST) > 0) { 173 173 $arrSqlData[0]['sql_name'] = $_POST['sql_name']; 174 174 $arrSqlData[0]['csv_sql'] = $_POST['csv_sql']; 175 175 } 176 $objPage->arrSqlData = $arrSqlData[0]; // ÁªÂò¤µ¤ì¤Æ¤¤¤ëSQL¥Ç¡¼¥¿177 178 // ²èÌ̤Îɽ¼¨176 $objPage->arrSqlData = $arrSqlData[0]; // 選択されているSQLデータ 177 178 // 画面の表示 179 179 $objView->assignobj($objPage); 180 180 $objView->display(MAIN_FRAME); … … 182 182 //--------------------------------------------------------------------------------------------------------------------------------------------------------- 183 183 /************************************************************************************************************** 184 * ´Ø¿ô̾ ¡§lfGetTableList185 * ½èÍýÆâÍÆ ¡§¥Æ¡¼¥Ö¥ë°ìÍ÷¤ò¼èÆÀ¤¹¤ë186 * °ú¿ô ¡§¤Ê¤·187 * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì184 * 関数名 :lfGetTableList 185 * 処理内容 :テーブル一覧を取得する 186 * 引数 :なし 187 * 戻り値 :取得結果 188 188 **************************************************************************************************************/ 189 189 function lfGetTableList(){ 190 190 $objQuery = new SC_Query(); 191 $arrRet = array(); // ·ë²Ì¼èÆÀÍÑ191 $arrRet = array(); // 結果取得用 192 192 193 193 $sql = ""; … … 201 201 202 202 /************************************************************************************************************** 203 * ´Ø¿ô̾ ¡§lfGetColunmList204 * ½èÍýÆâÍÆ ¡§¥Æ¡¼¥Ö¥ë¤Î¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë205 * °ú¿ô ¡§$selectTable¡§¥Æ¡¼¥Ö¥ë̾¾Î206 * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì203 * 関数名 :lfGetColunmList 204 * 処理内容 :テーブルのカラム一覧を取得する 205 * 引数 :$selectTable:テーブル名称 206 * 戻り値 :取得結果 207 207 **************************************************************************************************************/ 208 208 function lfGetColumnList($selectTable){ 209 209 $objQuery = new SC_Query(); 210 $arrRet = array(); // ·ë²Ì¼èÆÀÍÑ210 $arrRet = array(); // 結果取得用 211 211 $sql = ""; 212 212 $sql .= " SELECT column_name, description FROM dtb_table_comment WHERE table_name = ? AND column_name IS NOT NULL"; … … 218 218 219 219 /************************************************************************************************************** 220 * ´Ø¿ô̾ ¡§lfGetSqlList221 * ½èÍýÆâÍÆ ¡§ÅÐÏ¿ºÑ¤ßSQL°ìÍ÷¤ò¼èÆÀ¤¹¤ë222 * °ú¿ô1 ¡§$where¡§Where¶ç223 * °ú¿ô2 ¡§$arrData¡§¹Ê¤ê¹þ¤ß¥Ç¡¼¥¿224 * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì220 * 関数名 :lfGetSqlList 221 * 処理内容 :登録済みSQL一覧を取得する 222 * 引数1 :$where:Where句 223 * 引数2 :$arrData:絞り込みデータ 224 * 戻り値 :取得結果 225 225 **************************************************************************************************************/ 226 226 function lfGetSqlList($where = "" , $arrData = array()){ 227 227 $objQuery = new SC_Query(); 228 $arrRet = array(); // ·ë²Ì¼èÆÀÍÑ228 $arrRet = array(); // 結果取得用 229 229 230 230 $sql = ""; … … 238 238 $sql .= " dtb_csv_sql"; 239 239 240 // Where ¶ç¤Î»ØÄ꤬¤¢¤ì¤Ð·ë¹ç¤¹¤ë240 // Where句の指定があれば結合する 241 241 if ($where != "") { 242 242 $sql .= " $where "; … … 246 246 $sql .= " "; 247 247 248 // ¥Ç¡¼¥¿¤ò°ú¿ô¤ÇÅϤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥»¥Ã¥È¤¹¤ë248 // データを引数で渡されている場合にはセットする 249 249 if (count($arrData) > 0) { 250 250 $arrRet = $objQuery->getall($sql, $arrData); … … 258 258 259 259 /************************************************************************************************************** 260 * ´Ø¿ô̾ ¡§lfUpdCsvOutput261 * ½èÍýÆâÍÆ ¡§ÆþÎϹàÌܤΥ¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦262 * °ú¿ô ¡§POST¥Ç¡¼¥¿263 * ÌáÃÍ ¡§¥¨¥é¡¼ÆâÍÆ260 * 関数名 :lfUpdCsvOutput 261 * 処理内容 :入力項目のエラーチェックを行う 262 * 引数 :POSTデータ 263 * 戻値 :エラー内容 264 264 **************************************************************************************************************/ 265 265 function lfCheckError($data){ 266 266 $objErr = new SC_CheckError(); 267 $objErr->doFunc( array(" ̾¾Î", "sql_name"), array("EXIST_CHECK") );268 $objErr->doFunc( array("SQL ʸ", "csv_sql", "30000"), array("EXIST_CHECK", "MAX_LENGTH_CHECK") );269 270 // SQL ¤ÎÂÅÅöÀ¥Á¥§¥Ã¥¯267 $objErr->doFunc( array("名称", "sql_name"), array("EXIST_CHECK") ); 268 $objErr->doFunc( array("SQL文", "csv_sql", "30000"), array("EXIST_CHECK", "MAX_LENGTH_CHECK") ); 269 270 // SQLの妥当性チェック 271 271 if ($objErr->arrErr['csv_sql'] == "") { 272 272 $objsqlErr = lfCheckSQL($data); 273 273 if ($objsqlErr != "") { 274 $objErr->arrErr["csv_sql"] = "SQL ʸ¤¬ÉÔÀµ¤Ç¤¹¡£SQLʸ¤ò¸«Ä¾¤·¤Æ¤¯¤À¤µ¤¤";274 $objErr->arrErr["csv_sql"] = "SQL文が不正です。SQL文を見直してください"; 275 275 } 276 276 } … … 281 281 282 282 /************************************************************************************************************** 283 * ´Ø¿ô̾ ¡§lfCheckSQL284 * ½èÍýÆâÍÆ ¡§ÆþÎϤµ¤ì¤¿SQLʸ¤¬Àµ¤·¤¤¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦285 * °ú¿ô ¡§POST¥Ç¡¼¥¿286 * ÌáÃÍ ¡§¥¨¥é¡¼ÆâÍÆ283 * 関数名 :lfCheckSQL 284 * 処理内容 :入力されたSQL文が正しいかチェックを行う 285 * 引数 :POSTデータ 286 * 戻値 :エラー内容 287 287 **************************************************************************************************************/ 288 288 function lfCheckSQL($data){ … … 303 303 304 304 /************************************************************************************************************** 305 * ´Ø¿ô̾ ¡§lfUpdData306 * ½èÍýÆâÍÆ ¡§DB¤Ë¥Ç¡¼¥¿¤òÊݸ¤¹¤ë307 * °ú¿ô1 ¡§$sql_id¥¥¥¹¹¿·¤¹¤ë¥Ç¡¼¥¿¤ÎSQL_ID308 * °ú¿ô2 ¡§$arrData¥¥¥¹¹¿·¥Ç¡¼¥¿309 * Ìá¤êÃÍ ¡§$sql_id:SQL_ID¤òÊÖ¤¹305 * 関数名 :lfUpdData 306 * 処理内容 :DBにデータを保存する 307 * 引数1 :$sql_id・・・更新するデータのSQL_ID 308 * 引数2 :$arrData・・・更新データ 309 * 戻り値 :$sql_id:SQL_IDを返す 310 310 **************************************************************************************************************/ 311 311 function lfUpdData($sql_id = "", $arrData = array()){ 312 $objQuery = new SC_Query(); // DB Áàºî¥ª¥Ö¥¸¥§¥¯¥È313 $sql = ""; // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ314 $arrRet = array(); // ¥Ç¡¼¥¿¼èÆÀÍÑ(¹¹¿·È½Äê)315 $arrVal = array(); // ¥Ç¡¼¥¿¹¹¿·316 317 // sql_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏUPDATE312 $objQuery = new SC_Query(); // DB操作オブジェクト 313 $sql = ""; // データ取得SQL生成用 314 $arrRet = array(); // データ取得用(更新判定) 315 $arrVal = array(); // データ更新 316 317 // sql_id が指定されている場合にはUPDATE 318 318 if ($sql_id != "") { 319 // ¸ºß¥Á¥§¥Ã¥¯319 // 存在チェック 320 320 $arrSqlData = lfGetSqlList(" WHERE sql_id = ?", array($sql_id)); 321 321 if (count($arrSqlData) > 0) { 322 // ¥Ç¡¼¥¿¹¹¿·322 // データ更新 323 323 $sql = "UPDATE dtb_csv_sql SET sql_name = ?, csv_sql = ?, update_date = now() WHERE sql_id = ? "; 324 324 $arrVal= array($arrData['sql_name'], $arrData['csv_sql'], $sql_id); 325 325 }else{ 326 // ¥Ç¡¼¥¿¤Î¿·µ¬ºîÀ®326 // データの新規作成 327 327 $sql_id = ""; 328 328 $sql = "INSERT INTO dtb_csv_sql (sql_name, csv_sql, create_date, update_date) values (?, ?, now(), now()) "; … … 331 331 } 332 332 }else{ 333 // ¥Ç¡¼¥¿¤Î¿·µ¬ºîÀ®333 // データの新規作成 334 334 $sql = "INSERT INTO dtb_csv_sql (sql_name, csv_sql, create_date, update_date) values (?, ?, now(), now()) "; 335 335 $arrVal= array($arrData['sql_name'], $arrData['csv_sql']); 336 336 } 337 // SQL ¼Â¹Ô337 // SQL実行 338 338 $arrRet = $objQuery->query($sql,$arrVal); 339 339 340 // ¿·µ¬ºîÀ®»þ¤Ï$sql_id¤ò¼èÆÀ340 // 新規作成時は$sql_idを取得 341 341 if ($sql_id == "") { 342 342 $arrNewData = lfGetSqlList(" ORDER BY create_date DESC"); … … 349 349 350 350 /************************************************************************************************************** 351 * ´Ø¿ô̾ ¡§lfDelData352 * ½èÍýÆâÍÆ ¡§¥Ç¡¼¥¿¤òºï½ü¤¹¤ë353 * °ú¿ô1 ¡§$sql_id¥¥¥ºï½ü¤¹¤ë¥Ç¡¼¥¿¤ÎSQL_ID354 * Ìá¤êÃÍ ¡§¼Â¹Ô·ë²Ì¡¡TRUE¡§À®¸ù FALSE¡§¼ºÇÔ351 * 関数名 :lfDelData 352 * 処理内容 :データを削除する 353 * 引数1 :$sql_id・・・削除するデータのSQL_ID 354 * 戻り値 :実行結果 TRUE:成功 FALSE:失敗 355 355 **************************************************************************************************************/ 356 356 function lfDelData($sql_id = ""){ 357 $objQuery = new SC_Query(); // DB Áàºî¥ª¥Ö¥¸¥§¥¯¥È358 $sql = ""; // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ359 $Ret = false; // ¼Â¹Ô·ë²Ì360 361 // sql_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¼Â¹Ô357 $objQuery = new SC_Query(); // DB操作オブジェクト 358 $sql = ""; // データ取得SQL生成用 359 $Ret = false; // 実行結果 360 361 // sql_id が指定されている場合のみ実行 362 362 if ($sql_id != "") { 363 // ¥Ç¡¼¥¿¤Îºï½ü363 // データの削除 364 364 $sql = "DELETE FROM dtb_csv_sql WHERE sql_id = ? "; 365 // SQL ¼Â¹Ô365 // SQL実行 366 366 $ret = $objQuery->query($sql,array($sql_id)); 367 367 }else{ … … 369 369 } 370 370 371 // ·ë²Ì¤òÊÖ¤¹371 // 結果を返す 372 372 return $ret; 373 373 } 374 374 375 375 376 //---- CSV ½ÐÎÏÍѥǡ¼¥¿¼èÆÀ376 //---- CSV出力用データ取得 377 377 function lfGetCSVData( $array, $arrayIndex){ 378 378 for ($i=0; $i<count($array); $i++){ … … 381 381 $return .= "\""; 382 382 if ( $arrayIndex ){ 383 $return .= mb_ereg_replace("<"," ¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\"";383 $return .= mb_ereg_replace("<","<",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\""; 384 384 } else { 385 $return .= mb_ereg_replace("<"," ¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\"";385 $return .= mb_ereg_replace("<","<",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\""; 386 386 } 387 387 }
Note: See TracChangeset
for help on using the changeset viewer.
