테스트 사이트 - 개발 중인 베타 버전입니다

엑셀로 데이터 입력시 wr_id | wr_num wr_| parent 입력 문의 채택완료

엑셀로 데이터를 아래처럼 입력하고 있습니다. 

그런데 

wr_id wr_num wr_parent

이부분을 자동으로 처리하고 싶은데 쉽게 방법이 있을까요?

 

 

</p>

<p><?

include_once("./common.php");

include_once("./head.sub.php");

set_time_limit ( 0 );

ini_set('memory_limit', '50M');</p>

<p>

function only_number($n)

{

    return preg_replace('/[^0-9]/', '', $n);

}</p>

<p>if($_FILES['excelfile']['tmp_name']) {

    if(strlen($_POST['board_nm']) == 0){

        alert('테이블명 누락');

    }

    $file = $_FILES['excelfile']['tmp_name'];</p>

<p>    include_once(G5_LIB_PATH.'/Excel/reader.php');</p>

<p>    $data = new Spreadsheet_Excel_Reader();</p>

<p>    // Set output Encoding.

    $data->setOutputEncoding('UTF-8');</p>

<p>    /***

    * if you want you can change 'iconv' to mb_convert_encoding:

    * $data->setUTFEncoder('mb');

    *

    **/</p>

<p>    /***

    * By default rows & cols indeces start with 1

    * For change initial index use:

    * $data->setRowColOffset(0);

    *

    **/</p>

<p>    /***

    *  Some function for formatting output.

    * $data->setDefaultFormat('%.2f');

    * setDefaultFormat - set format for columns with unknown formatting

    *

    * $data->setColumnFormat(4, '%.3f');

    * setColumnFormat - set format for column (apply only to number fields)

    *

    **/</p>

<p>    $data->read($file);</p>

<p>    /*</p>

<p>

     $data->sheets[0]['numRows'] - count rows

     $data->sheets[0]['numCols'] - count columns

     $data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column</p>

<p>     $data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell</p>

<p>        $data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"

            if 'type' == "unknown" - use 'raw' value, because  cell contain value with format '0.00';

        $data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format

        $data->sheets[0]['cellsInfo'][$i][$j]['colspan']

        $data->sheets[0]['cellsInfo'][$i][$j]['rowspan']

    */</p>

<p>    error_reporting(E_ALL ^ E_NOTICE);

        $succ_count = 0;

        $board_nm = $_POST['board_nm'];

        

    for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {

            if($i == 1){        // 1첫번째 열에 항목명을 컬럼명으로 테이블 만들기

                

                $sql = " CREATE TABLE {$board_nm} (";

                for($kk = 1; $kk < 80; $kk++){

                    $val1 = @trim(addslashes($data->sheets[0]['cells'][1][$kk]));

                    $jjum = "";

                    if(strlen(@trim(addslashes($data->sheets[0]['cells'][1][$kk+1]))) > 0){

                        $jjum = ",";

                    }

                    if(strlen($val1) > 0){

                        if($val1 == "strContent"){            // 컬럼중 text 타입으로 값이 많이 들어있는거 설정

                            $sql .= " `{$val1}` text NOT NULL {$jjum} ";

                        }else{

                            $sql .= " `{$val1}` varchar(255) NOT NULL {$jjum} ";

                        }

                    }

                }

                $sql .= ") DEFAULT CHARSET=utf8; ";

                sql_query($sql);

            }else{

                $arr_fields = sql_field_names($board_nm);

        $total_count++;

        $j = 1;

                $sql = " insert into {$board_nm} set ";

                $zz = 0;

                foreach($arr_fields as $line){

                    if( ($zz+1) == count($arr_fields)){

                        $sql .= " {$line} = '".addslashes($data->sheets[0]['cells'][$i][$j++])."' ";

                    }else{

                        $sql .= " {$line} = '".addslashes($data->sheets[0]['cells'][$i][$j++])."', ";

                    }

                    $zz++;

                }</p>

<p>        sql_query($sql);

                //echo $sql."
";</p>

<p>        $succ_count++;

            }

    }</p>

<p>        alert(number_format($succ_count)."개 insert 성공",G5_URL."/excel_upload.php"); 

        /*    */

}

?>

<div style="border:3px solid #000;padding:20px;max-width:700px;margin:50px auto 0 auto;">

<h1 style="margin-bottom:40px;">엑셀데이터를 업로드하여, 첫번째 열을 컬럼명으로 테이블 자동 생성 및 데이터 INSERT!!</h1>

<form name="frm" id="frm" method="post" enctype="multipart/form-data">

<input type="text" id="board_nm" name="board_nm" value="" class="frm_input" style='width:120px;' placeholder="만들어질 테이블명">

<label for="file">엑셀파일:</label> <input type="file" name="excelfile" id="excelfile" />

<p style="float:right;"><input type="submit" name="submit" value="DB업로드실행" class="btn1"/> <input type="submit" name="submit" value="창닫기" onclick="self.close();" class="btn1"/></p>

</form>

</div>

<?

include_once("./tail.sub.php");

?></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

wr_id=$wr_id,  wr_num=-$wr_id, wr_parent=$wr_id

이런 식으로 해 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고