엑셀로 데이터 입력시 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 포인트
4년 전
wr_id=$wr_id, wr_num=-$wr_id, wr_parent=$wr_id
이런 식으로 해 보세요.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택