source: temp/trunk/html/admin/contents/csv_sql.php @ 6369

Revision 6369, 11.0 KB checked in by kakinaka, 20 years ago (diff)

* empty log message *

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2/*
3 * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../../require.php");
8require_once(DATA_PATH . "include/csv_output.inc");
9
10class LC_Page {
11    var $arrForm;
12    var $arrHidden;
13
14    function LC_Page() {
15        $this->tpl_mainpage = 'contents/csv_sql.tpl';
16        $this->tpl_subnavi = 'contents/subnavi.tpl';
17        $this->tpl_subno = 'csv';
18        $this->tpl_subno_csv = 'csv_sql';
19        $this->tpl_mainno = "contents";
20        $this->tpl_subtitle = 'CSV½ÐÎÏÀßÄê';
21    }
22}
23
24$objPage = new LC_Page();
25$objView = new SC_AdminView();
26
27$objPage->arrSubnavi = $arrSubnavi;
28$objPage->arrSubnaviName = $arrSubnaviName;
29
30// ǧ¾Ú²ÄÈݤÎȽÄê
31$objSess = new SC_Session();
32sfIsSuccess($objSess);
33
34// SQL_ID¤Î¼èÆÀ
35if ($_POST['sql_id'] != "") {
36    $sql_id = $_POST['sql_id'];
37}elseif($_GET['sql_id'] != ""){
38    $sql_id = $_GET['sql_id'];
39}else{
40    $sql_id = "";
41}
42
43$mode = $_POST['mode'];
44
45switch($_POST['mode']) {
46    // ¥Ç¡¼¥¿¤ÎÅÐÏ¿
47    case "confirm":
48        // ¥¨¥é¡¼¥Á¥§¥Ã¥¯
49        $objPage->arrErr = lfCheckError($_POST);
50       
51        sfprintr($_POST);
52       
53        if (count($objPage->arrErr) <= 0){
54            // ¥Ç¡¼¥¿¤Î¹¹¿·
55            $sql_id = lfUpdData($sql_id, $_POST);
56            // ´°Î»¥á¥Ã¥»¡¼¥¸É½¼¨
57            $objPage->tpl_onload = "alert('ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');";
58        }
59        break;
60   
61    // ³Îǧ²èÌÌ
62    case "preview":
63        // SQLʸɽ¼¨
64        $sql = "SELECT \n" . $_POST['sql'];
65        $objPage->sql = $sql;
66       
67        // ¥¨¥é¡¼É½¼¨
68        $objErrMsg = lfCheckSQL($_POST);
69        if ($objErrMsg != "") {
70            $errMsg = $objErrMsg->message . "\n" . $objErrMsg->userinfo;
71        }
72       
73        $objPage->sqlerr = $errMsg;
74
75        $objPage->objView = $objView;
76       
77        // ²èÌ̤Îɽ¼¨
78        $objView->assignobj($objPage);
79        $objView->display('contents/csv_sql_view.tpl');
80        exit;
81        break;
82
83    // ¿·µ¬ºîÀ®
84    case "new_page":
85        header("location: ./csv_sql.php");
86        break;
87       
88    // ¥Ç¡¼¥¿ºï½ü
89    case "delete":
90        lfDelData($sql_id);
91        header("location: ./csv_sql.php");
92        break;
93       
94    case "csv_output":
95        // CSV½ÐÎϥǡ¼¥¿¼èÆÀ
96        $arrCsvData = lfGetSqlList(" WHERE sql_id = ?", array($_POST['csv_output_id']));
97       
98        $objQuery = new SC_Query();
99       
100        $arrCsvOutputData = $objQuery->getall("SELECT " . $arrCsvData[0]['csv_sql']);
101       
102        if (count($arrCsvOutputData) > 0) {
103           
104            $arrKey = array_keys(sfSwapArray($arrCsvOutputData));
105            foreach($arrKey as $data) {
106                if ($i != 0) $header .= ", ";
107                $header .= $data;
108                $i ++;
109            }
110            $header .= "\n";
111
112            $data = lfGetCSVData($arrCsvOutputData, $arrKey);
113            // CSV½ÐÎÏ
114            sfCSVDownload($header.$data);
115            exit;
116        break;
117        }else{
118            $objPage->tpl_onload = "alert('½ÐÎϥǡ¼¥¿¤¬¤¢¤ê¤Þ¤»¤ó¡£');";
119            $sql_id = "";
120            $_POST="";
121        }
122        break;
123}
124
125// mode ¤¬ confirm °Ê³°¤Î¤È¤­¤Ï´°Î»¥á¥Ã¥»¡¼¥¸¤Ï½ÐÎϤ·¤Ê¤¤
126if ($mode != "confirm" and $mode != "csv_output") {
127    $objPage->tpl_onload = "";
128}
129
130// ÅÐÏ¿ºÑ¤ßSQL°ìÍ÷¼èÆÀ
131$arrSqlList = lfGetSqlList();
132
133// ÊÔ½¸ÍÑSQL¥Ç¡¼¥¿¤Î¼èÆÀ
134if ($sql_id != "") {
135    $arrSqlData = lfGetSqlList(" WHERE sql_id = ?", array($sql_id));
136}
137
138// ¥Æ¡¼¥Ö¥ë°ìÍ÷¤ò¼èÆÀ¤¹¤ë
139$arrTableList = lfGetTableList();
140$arrTableList = sfSwapArray($arrTableList);
141
142// ¸½ºßÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥Ö¥ë¤ò¼èÆÀ¤¹¤ë
143if ($_POST['selectTable'] == ""){
144    $selectTable = $arrTableList['table_name'][0];
145}else{
146    $selectTable = $_POST['selectTable'];
147}
148
149// ¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë
150$arrColList = lfGetColumnList($selectTable);
151$arrColList =  sfSwapArray($arrColList);
152
153// ɽ¼¨¤µ¤»¤ëÆâÍÆ¤òÊÔ½¸
154foreach ($arrTableList['description'] as $key => $val) {
155    $arrTableList['description'][$key] = $arrTableList['table_name'][$key] . "¡§" . $arrTableList['description'][$key];
156}
157foreach ($arrColList['description'] as $key => $val) {
158    $arrColList['description'][$key] = $arrColList['column_name'][$key] . "¡§" . $arrColList['description'][$key];
159}
160
161// ¥Æ¥ó¥×¥ì¡¼¥È¤Ë½ÐÎϤ¹¤ë¥Ç¡¼¥¿¤ò¥»¥Ã¥È
162$objPage->arrSqlList = $arrSqlList;                                                             // SQL°ìÍ÷
163$objPage->arrTableList = sfarrCombine($arrTableList['table_name'], $arrTableList['description']);   // ¥Æ¡¼¥Ö¥ë°ìÍ÷
164$objPage->arrColList = sfarrCombine($arrColList['column_name'],$arrColList['description']);         // ¥«¥é¥à°ìÍ÷
165$objPage->selectTable = $selectTable;                                                           // ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥Ö¥ë
166$objPage->sql_id = $sql_id;                                                                     // ÁªÂò¤µ¤ì¤Æ¤¤¤ëSQL
167
168// POST¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë
169if (count($_POST) > 0) {
170    $arrSqlData[0]['sql_name'] = $_POST['sql_name'];
171    $arrSqlData[0]['csv_sql'] = $_POST['csv_sql'];
172}
173$objPage->arrSqlData = $arrSqlData[0];                                                          // ÁªÂò¤µ¤ì¤Æ¤¤¤ëSQL¥Ç¡¼¥¿
174
175// ²èÌ̤Îɽ¼¨
176$objView->assignobj($objPage);
177$objView->display(MAIN_FRAME);
178
179//---------------------------------------------------------------------------------------------------------------------------------------------------------
180/**************************************************************************************************************
181 * ´Ø¿ô̾   ¡§lfGetTableList
182 * ½èÍýÆâÍÆ ¡§¥Æ¡¼¥Ö¥ë°ìÍ÷¤ò¼èÆÀ¤¹¤ë
183 * °ú¿ô     ¡§¤Ê¤·
184 * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì
185 **************************************************************************************************************/
186function lfGetTableList(){
187    $objQuery = new SC_Query();
188    $arrRet = array();      // ·ë²Ì¼èÆÀÍÑ
189
190    $sql = "";
191    $sql .= "SELECT table_name, description FROM dtb_table_comment WHERE column_name IS NULL ORDER BY table_name";
192    $arrRet = $objQuery->getAll($sql);
193   
194   
195    return $arrRet;
196}
197
198
199/**************************************************************************************************************
200 * ´Ø¿ô̾   ¡§lfGetColunmList
201 * ½èÍýÆâÍÆ ¡§¥Æ¡¼¥Ö¥ë¤Î¥«¥é¥à°ìÍ÷¤ò¼èÆÀ¤¹¤ë
202 * °ú¿ô     ¡§$selectTable¡§¥Æ¡¼¥Ö¥ë̾¾Î
203 * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì
204 **************************************************************************************************************/
205function lfGetColumnList($selectTable){
206    $objQuery = new SC_Query();
207    $arrRet = array();      // ·ë²Ì¼èÆÀÍÑ
208    $sql = "";
209    $sql .= " SELECT column_name, description FROM dtb_table_comment WHERE table_name = ? AND column_name IS NOT NULL";
210    $arrRet = $objQuery->getAll($sql, array($selectTable));
211   
212    return $arrRet;
213   
214}
215
216/**************************************************************************************************************
217 * ´Ø¿ô̾   ¡§lfGetSqlList
218 * ½èÍýÆâÍÆ ¡§ÅÐÏ¿ºÑ¤ßSQL°ìÍ÷¤ò¼èÆÀ¤¹¤ë
219 * °ú¿ô1    ¡§$where¡§Where¶ç
220 * °ú¿ô2    ¡§$arrData¡§¹Ê¤ê¹þ¤ß¥Ç¡¼¥¿
221 * Ìá¤êÃÍ ¡¡¡§¼èÆÀ·ë²Ì
222 **************************************************************************************************************/
223function lfGetSqlList($where = "" , $arrData = array()){
224    $objQuery = new SC_Query();
225    $arrRet = array();      // ·ë²Ì¼èÆÀÍÑ
226   
227    $sql = "";
228    $sql .= " SELECT";
229    $sql .= "     sql_id,";
230    $sql .= "     sql_name,";
231    $sql .= "     csv_sql,";
232    $sql .= "     update_date,";
233    $sql .= "     create_date";
234    $sql .= " FROM";
235    $sql .= "     dtb_csv_sql";
236   
237    // Where¶ç¤Î»ØÄ꤬¤¢¤ì¤Ð·ë¹ç¤¹¤ë
238    if ($where != "") {
239        $sql .= " $where ";
240    }else{
241        $sql .= " ORDER BY sql_id ";
242    }
243    $sql .= " ";
244
245    // ¥Ç¡¼¥¿¤ò°ú¿ô¤ÇÅϤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥»¥Ã¥È¤¹¤ë
246    if (count($arrData) > 0) {
247        $arrRet = $objQuery->getall($sql, $arrData);
248    }else{
249        $arrRet = $objQuery->getall($sql);
250    }
251
252    return $arrRet;
253   
254}
255
256/**************************************************************************************************************
257 * ´Ø¿ô̾   ¡§lfUpdCsvOutput
258 * ½èÍýÆâÍÆ ¡§ÆþÎϹàÌܤΥ¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
259 * °ú¿ô     ¡§POST¥Ç¡¼¥¿
260 * ÌáÃÍ     ¡§¥¨¥é¡¼ÆâÍÆ
261 **************************************************************************************************************/
262function lfCheckError($data){
263    $objErr = new SC_CheckError();
264    $objErr->doFunc( array("̾¾Î", "sql_name"), array("EXIST_CHECK") );
265    $objErr->doFunc( array("SQLʸ", "csv_sql", "30000"), array("EXIST_CHECK", "MAX_LENGTH_CHECK") );
266   
267    // SQL¤ÎÂÅÅöÀ­¥Á¥§¥Ã¥¯
268    if ($objErr->arrErr['csv_sql'] == "") {
269        $objsqlErr = lfCheckSQL($data);
270        if ($objsqlErr != "") {
271            $objErr->arrErr["csv_sql"] = "SQLʸ¤¬ÉÔÀµ¤Ç¤¹¡£SQLʸ¤ò¸«Ä¾¤·¤Æ¤¯¤À¤µ¤¤";
272        }
273    }
274   
275    return $objErr->arrErr;
276
277}
278
279/**************************************************************************************************************
280 * ´Ø¿ô̾   ¡§lfCheckSQL
281 * ½èÍýÆâÍÆ ¡§ÆþÎϤµ¤ì¤¿SQLʸ¤¬Àµ¤·¤¤¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
282 * °ú¿ô     ¡§POST¥Ç¡¼¥¿
283 * ÌáÃÍ     ¡§¥¨¥é¡¼ÆâÍÆ
284 **************************************************************************************************************/
285function lfCheckSQL($data){
286    $err = "";
287    $objDbConn = new SC_DbConn();
288    $sql = "SELECT " . $data['csv_sql'] . " ";
289    $ret = $objDbConn->conn->query($sql);
290    if ($objDbConn->conn->isError($ret)){
291        $err = $ret;
292    }
293   
294    return $err;
295}
296
297function lfprintr($data){
298    print_r($data);
299}
300
301/**************************************************************************************************************
302 * ´Ø¿ô̾   ¡§lfUpdData
303 * ½èÍýÆâÍÆ ¡§DB¤Ë¥Ç¡¼¥¿¤òÊݸ¤¹¤ë
304 * °ú¿ô1    ¡§$sql_idޥޥޥ¹¹¿·¤¹¤ë¥Ç¡¼¥¿¤ÎSQL_ID
305 * °ú¿ô2    ¡§$arrDataޥޥޥ¹¹¿·¥Ç¡¼¥¿
306 * Ìá¤êÃÍ   ¡§$sql_id:SQL_ID¤òÊÖ¤¹
307 **************************************************************************************************************/
308function lfUpdData($sql_id = "", $arrData = array()){
309    $objQuery = new SC_Query();     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
310    $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ
311    $arrRet = array();              // ¥Ç¡¼¥¿¼èÆÀÍÑ(¹¹¿·È½Äê)
312    $arrVal = array();              // ¥Ç¡¼¥¿¹¹¿·
313
314    // sql_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏUPDATE
315    if ($sql_id != "") {
316        // ¸ºß¥Á¥§¥Ã¥¯
317        $arrSqlData = lfGetSqlList(" WHERE sql_id = ?", array($sql_id));
318        if (count($arrSqlData) > 0) {
319            // ¥Ç¡¼¥¿¹¹¿·
320            $sql = "UPDATE dtb_csv_sql SET sql_name = ?, csv_sql = ?, update_date = now() WHERE sql_id = ? ";
321            $arrVal= array($arrData['sql_name'], $arrData['csv_sql'], $sql_id);
322        }else{
323            // ¥Ç¡¼¥¿¤Î¿·µ¬ºîÀ®
324            $sql_id = "";
325            $sql = "INSERT INTO dtb_csv_sql (sql_name, csv_sql, create_date, update_date) values (?, ?, now(), now()) ";
326            $arrVal= array($arrData['sql_name'], $arrData['csv_sql']);
327           
328        }
329    }else{
330        // ¥Ç¡¼¥¿¤Î¿·µ¬ºîÀ®
331        $sql = "INSERT INTO dtb_csv_sql (sql_name, csv_sql, create_date, update_date) values (?, ?, now(), now()) ";
332        $arrVal= array($arrData['sql_name'], $arrData['csv_sql']);
333    }
334    // SQL¼Â¹Ô 
335    $arrRet = $objQuery->query($sql,$arrVal);
336   
337    // ¿·µ¬ºîÀ®»þ¤Ï$sql_id¤ò¼èÆÀ
338    if ($sql_id == "") {
339        $arrNewData = lfGetSqlList(" ORDER BY create_date DESC");
340        $sql_id = $arrNewData[0]['sql_id'];
341    }
342   
343    return $sql_id;
344}
345
346
347/**************************************************************************************************************
348 * ´Ø¿ô̾   ¡§lfDelData
349 * ½èÍýÆâÍÆ ¡§¥Ç¡¼¥¿¤òºï½ü¤¹¤ë
350 * °ú¿ô1    ¡§$sql_idޥޥޥºï½ü¤¹¤ë¥Ç¡¼¥¿¤ÎSQL_ID
351 * Ìá¤êÃÍ   ¡§¼Â¹Ô·ë²Ì¡¡TRUE¡§À®¸ù FALSE¡§¼ºÇÔ
352 **************************************************************************************************************/
353function lfDelData($sql_id = ""){
354    $objQuery = new SC_Query();     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
355    $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ
356    $Ret = false;                   // ¼Â¹Ô·ë²Ì
357
358    // sql_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¼Â¹Ô
359    if ($sql_id != "") {
360        // ¥Ç¡¼¥¿¤Îºï½ü
361        $sql = "DELETE FROM dtb_csv_sql WHERE sql_id = ? ";
362        // SQL¼Â¹Ô 
363        $ret = $objQuery->query($sql,array($sql_id));
364    }else{
365        $ret = false;
366    }
367
368    // ·ë²Ì¤òÊÖ¤¹
369    return $ret;
370}
371
372
373//---- CSV½ÐÎÏÍѥǡ¼¥¿¼èÆÀ
374function lfGetCSVData( $array, $arrayIndex){   
375    for ($i=0; $i<count($array); $i++){
376        for ($j=0; $j<count($array[$i]); $j++ ){
377            if ( $j > 0 ) $return .= ",";
378            $return .= "\"";           
379            if ( $arrayIndex ){
380                $return .= mb_ereg_replace("<","¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\""; 
381            } else {
382                $return .= mb_ereg_replace("<","¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\"";
383            }
384        }
385        $return .= "\n";           
386    }
387   
388    return $return;
389}
390
Note: See TracBrowser for help on using the repository browser.