게시판 글 엑셀로 업로드

게시판 글 엑셀로 업로드

QA

게시판 글 엑셀로 업로드

본문

영카트 상품일괄등록 파일을 수정해서 게시판에 업로드 할려고 하는데 올라가질 않네요..

음... 아래 구문에서 머가 잘못된게 있는지 봐주세요..

상품테이블에 등록되는걸 방식그대로... 게시판 필드로 수정을 한건데 되야 되는거 아닌가...

테이블은 test 로 준겁니다. 생성도 되어 있구요.

엑셀 파일로 필드 그대로 지정을 해서 만들어놨습니다..

 


<?php
$sub_menu = '400300';
include_once('./_common.php');
 
// 상품이 많을 경우 대비 설정변경
set_time_limit ( 0 );
ini_set('memory_limit', '50M');
 
auth_check($auth[$sub_menu], "w");
 
function only_number($n)
{
    return preg_replace('/[^0-9]/', '', $n);
}
 
if($_FILES['excelfile']['tmp_name']) {
    $file = $_FILES['excelfile']['tmp_name'];
 
    include_once(G5_LIB_PATH.'/Excel/reader.php');
 
    $data = new Spreadsheet_Excel_Reader();
 
    // Set output Encoding.
    $data->setOutputEncoding('UTF-8');
 
    /***
    * if you want you can change 'iconv' to mb_convert_encoding:
    * $data->setUTFEncoder('mb');
    *
    **/
 
    /***
    * By default rows & cols indeces start with 1
    * For change initial index use:
    * $data->setRowColOffset(0);
    *
    **/
 
 
 
    /***
    *  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)
    *
    **/
 
    $data->read($file);
 
    /*
 
 
     $data->sheets[0]['numRows'] - count rows
     $data->sheets[0]['numCols'] - count columns
     $data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column
 
     $data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell
 
        $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']
    */
 
    error_reporting(E_ALL ^ E_NOTICE);
 
    $dup_wr_id = array();
    $fail_wr_id = array();
    $dup_count = 0;
    $total_count = 0;
    $fail_count = 0;
    $succ_count = 0;
 
    for ($i = 3; $i <= $data->sheets[0]['numRows']; $i++) {
        $total_count++;
 
        $j = 1;
 
		
		 $wr_num			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_reply			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_commen			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $ca_name			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_option			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_subject		= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_content		= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_link1			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_link2			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_link1_hit		= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_link2_hit		= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_hit			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_good			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_nogood			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $mb_id				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_password		= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_name			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_emai			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_homepage		= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_datetime		= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_last			= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_ip				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_1				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_2				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_3				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_4				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_5				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_6				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_7				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_8				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_9				= addslashes($data->sheets[0]['cells'][$i][$j++]);
         $wr_10				= addslashes($data->sheets[0]['cells'][$i][$j++]);
 
        
		
        if(!$wr_id) {
            $fail_count++;
            continue;
        }
		
 
        // it_id 중복체크
        $sql2 = " select count(*) as cnt from g5_write_test where wr_id = '$wr_id' ";
        $row2 = sql_fetch($sql2);
        if($row2['cnt']) {
            $fail_wr_id[] = $wr_id;
            $dup_wr_id[] = $wr_id;
            $dup_count++;
            $fail_count++;
            continue;
        }
		
 
        // 기본분류체크
        $sql2 = " select count(*) as cnt from g5_write_test where wr_id = '$wr_id' ";
        $row2 = sql_fetch($sql2);
        if(!$row2['cnt']) {
            $fail_wr_id[] = $wr_id;
            $fail_count++;
            continue;
        }
		
 
        $sql = " insert into g5_write_test
                set  wr_num = '$wr_num',
                     wr_reply = '$wr_reply',
                     wr_comment = 0,
                     ca_name = '$ca_name',
                     wr_option = '$html,$secret,$mail',
                     wr_subject = '$wr_subject',
                     wr_content = '$wr_content',
                     wr_link1 = '$wr_link1',
                     wr_link2 = '$wr_link2',
                     wr_link1_hit = 0,
                     wr_link2_hit = 0,
                     wr_hit = 0,
                     wr_good = 0,
                     wr_nogood = 0,
                     mb_id = '{$member['mb_id']}',
                     wr_password = '$wr_password',
                     wr_name = '$wr_name',
                     wr_email = '$wr_email',
                     wr_homepage = '$wr_homepage',
                     wr_datetime = '".G5_TIME_YMDHIS."',
                     wr_last = '".G5_TIME_YMDHIS."',
                     wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                     wr_1 = '$wr_1',
                     wr_2 = '$wr_2',
                     wr_3 = '$wr_3',
                     wr_4 = '$wr_4',
                     wr_5 = '$wr_5',
                     wr_6 = '$wr_6',
                     wr_7 = '$wr_7',
                     wr_8 = '$wr_8',
                     wr_9 = '$wr_9',
                     wr_10 = '$wr_10' ";
        sql_query($sql);
 
        $succ_count++;
    }
}
 
$g5['title'] = '게시판 자료 업로드';
include_once(G5_PATH.'/head.sub.php');
?>
 
<div class="new_win">
    <h1><?php echo $g5['title']; ?></h1>
 
    <div class="local_desc01 local_desc">
        <p>데이터 등록을 완료했습니다.</p>
    </div>
 
 
    <div class="btn_win01 btn_win">
        <button type="button" onclick="window.close();">창닫기</button>
    </div>
 
</div>
 
<?php
include_once(G5_PATH.'/tail.sub.php');
?> 

 

이 질문에 댓글 쓰기 :

답변 2

$j = 1; 

 

이 부분이 좀 이상한것 같습니다.

 

addslashes($data->sheets[0]['cells'][$i][$j++]); 

 

이런식으로 사용하니까

데이타를 0번째거 부터 읽을려면 -1,

데이타를 1번째거 부터 읽을려면 0,

이어야 할것 같습니다.

 

 

        if(!$wr_id) {

            $fail_count++;

            continue;

        } 

 

이부분도 이상합니다.

 

상위에서 $wr_id 가 정의 된게 없으니 당연히 전부 fail 로 빠져 버릴것 같습니다.

 

 

sql_query($sql); 

이부분도 

sql_query($sql) or die(mysql_error());

 

이런식으로 찍어보는게 좋을거 같습니다.

 

 

근데. 원천적으로 위에서 이미 다 실패로 continue 로 넘어가기 때문에

아래까지 내려갈 일은 없을것 같습니다.

 

네..답변 감사합니다. 자체 해결 했습니다..

말씀하신것 불필요한것들은 삭제를 했고

문제는 insert into g5_write_test 구문에서 바보같이 g5_2_ 이렇게 세팅된걸 깜빡하고...

당연히 안됐던 거네요 ㅎㅎ;;; g5_2_write_test 이렇게 하는걸로 업로드 해결되었습니다..

영카트 일괄등록파일을 해당 게시판 테이블로 올리게 수정하는건데 왜 안되나 했습니다..

결국엔 테이블 정의값 _2_  를 빠뜨렸던게 원인이었네요..

어느부분까지는 정상이고 어느부분에서 꼬여있는지를 확인하기 위해서 echo가 최고지요 

이런 경우 중간 중간에 echo를 통해서 확인하는 방법이 좋습니다 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 124,061 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT