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

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