Changeset 11730 for branches/comu/html/admin/contents/csv_sql.php
- Timestamp:
- 2007/03/11 06:27:25 (19 years ago)
- File:
-
- 1 edited
-
branches/comu/html/admin/contents/csv_sql.php (modified) (22 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/html/admin/contents/csv_sql.php
r11729 r11730 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.
