php엑셀리더 디비에저장이 안되요 ㅠㅠ

php엑셀리더 디비에저장이 안되요 ㅠㅠ

작성일 2012.10.12댓글 1건
    게시물 수정 , 삭제는 로그인 필요

 엑셀리더를 사용한건데요 업로드까지는 잘 되는데 이 엑셀내용이 디비에 저장이 안되네요 ;;;

뭐가 문제 일까요?> ㅠㅠ



요거는 excel.php

------------------------------------------------------------------------------------------------
<?
$sub_menu = "100999";
include_once("./_common.php");

auth_check($auth[$sub_menu], "r");

$token = get_token();

// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
function get_token()
{
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);

return $token;
}


//$es[title] = $html_title;
include_once ("$g4[admin_path]/admin.head.php");
?>
<?=subtitle("엑셀업로드")?>
<form name='fpost' method="post" enctype="multipart/form-data" action="excel_update.php">
<input type="hidden" name="r" value="1" />
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr height="25">
<td>샘플</td><td><a href="excel.xls">excel.xls</a></td>
</tr>
<tr height="25">
<td>첨부파일</td><td><input type="file" name="excel" size="20" /></td>
</tr>
<tr height="25"><td colspan="2"></td></tr>
<tr height="25"><td colspan="2" align="center"><input type="submit" value=" 전 송 " /></td></tr>
</table>
</form>

<?
include_once("./admin.tail.php");
?>



------------------------------------------------------------------------------------------------

excel_update.php




<?
$sub_menu = "100999";
include_once("./_common.php");

auth_check($auth[$sub_menu], "r");

if (empty($_POST)) {
$upload_max_filesize = ini_get('upload_max_filesize');
alert("파일 또는 글내용의 크기가 서버에서 설정한 값을 넘어 오류가 발생하였습니다.\\n\\npost_max_size=".ini_get('post_max_size')." , upload_max_filesize=$upload_max_filesize\\n\\n서버관리자에게 문의 바랍니다.");
}

require_once "$g4[admin_path]/phpExcelReader/Excel/reader.php";

if(!$_FILES[excel][name]) alert('첨부파일을 올려주세요.');
if(substr($_FILES[excel][name], -4) != '.xls') alert('첨부파일은 xls형식으로 올려주세요.');

$data = new Spreadsheet_Excel_Reader();

// Set output Encoding. - 원하시는 출력 문자종류를 설정
$data->setOutputEncoding('euc-kr');

$data->read($_FILES[excel][tmp_name]);
error_reporting(E_ALL ^ E_NOTICE);

$insert = $update = 0;


for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {//첫줄이 제목줄이여서 2부터 시작합니다. 내용만으로 이루어지면 1, 제목줄이 길면 그만큼 넘기고 시작하시면 됩니다.
if(!trim($data->sheets[0]['cells'][$i][1])) continue;

// 실행하고자 하는 디비명령문을 작성합니다.(신규시)
$sql = "insert into $g4[test_table] set fa_sub_no='".$data->sheets[0]['cells'][$i][1]."', fa_no = '".$data->sheets[0]['cells'][$i][2]."', fa_sub_name = '".$data->sheets[0]['cells'][$i][3]."', fa_sub_name_chin = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][4])."', fa_content = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][5])."', fa_sub_img = '".addslashes($data->sheets[0]['cells'][$i][6])."'";

if(!sql_query($sql, false)) {// 신규입력 실패시 수정 문으로 전환합니다.
sql_query("update $g4[test_table] set fa_no = '".$data->sheets[0]['cells'][$i][2]."', fa_sub_name = '".$data->sheets[0]['cells'][$i][3]."', fa_sub_name_chin = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][4])."', fa_content = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][5])."', fa_sub_img = '".addslashes($data->sheets[0]['cells'][$i][6])."' where fa_sub_no='".$data->sheets[0]['cells'][$i][1]."'", false);
$update++;//수정시
} else $insert++;//신규성공시

}
/*//단순내용 출력시 이 부분 주석을 풀어주세요.
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
}
echo "\n";

}
*/
alert("신규 : ".number_format($insert)." 건, 수정 : ".number_format($update)." 건, 총 ".number_format($insert+$update)." 건입니다.\\n\\n확인후 틀리다면 데이터를 분리해서 입력해주세요.", "excel.php");
?>

------------------------------------------------------------------------------------------------



그리고 reader.php파일에서

require_once 'oleread.inc'; 이렇게 수정해 줬구요

어디를 수정해야 디비에 들어갈수있을까요??

디비명은 test_table 이구요

테이블은 요렇게 만들어 놨어요

fa_sub_no varchar(20) euckr_korean_ci 아니오 None
fa_no varchar(11) euckr_korean_ci 아니오 None
fa_sub_name varchar(11) euckr_korean_ci 아니오 None
fa_sub_name_chin varchar(11) euckr_korean_ci 아니오 None
fa_content varchar(11) euckr_korean_ci 아니오 None
fa_sub_img varchar(11) euckr_korean_ci    



profile_image 익명 작성일 -

쿼리문에서 문법틀린부분 없을걸로 보아 DB잘못 연결되거나 값저장할때 따옴표 들어가거나 허용자릿수 초과로 오류 있을거 같습니다.

먼저 쿼리문오류메시지를 알아야 되는데 쿼리문오류메시지 알려주는 msyql_error()함수로 디버깅이용해보세요.

<?
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {//첫줄이 제목줄이여서 2부터 시작합니다. 내용만으로 이루어지면 1, 제목줄이 길면 그만큼 넘기고 시작하시면 됩니다.
if(!trim($data->sheets[0]['cells'][$i][1])) continue;

// 실행하고자 하는 디비명령문을 작성합니다.(신규시)
$sql = "insert into $g4[test_table] set fa_sub_no='".$data->sheets[0]['cells'][$i][1]."', fa_no = '".$data->sheets[0]['cells'][$i][2]."', fa_sub_name = '".$data->sheets[0]['cells'][$i][3]."', fa_sub_name_chin = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][4])."', fa_content = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][5])."', fa_sub_img = '".addslashes($data->sheets[0]['cells'][$i][6])."'";

if(!sql_query($sql, false)) {// 신규입력 실패시 수정 문으로 전환합니다.
$sql = "update $g4[test_table] set fa_no = '".$data->sheets[0]['cells'][$i][2]."', fa_sub_name = '".$data->sheets[0]['cells'][$i][3]."', fa_sub_name_chin = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][4])."', fa_content = '".str_replace(' ', '', $data->sheets[0]['cells'][$i][5])."', fa_sub_img = '".addslashes($data->sheets[0]['cells'][$i][6])."' where fa_sub_no='".$data->sheets[0]['cells'][$i][1]."'";
sql_query($sql, false);
$update++;//수정시
} else $insert++;//신규성공시 

if (mysql_error()) {
echo $i . "줄 => ";
echo "쿼리문 오류 : " . mysql_error() . "<br>";
echo "실제 쿼리문 : " . $sql;
}
}

익스플로러에서 대상저장이 안되요.. ㅠㅠ

... 리더가 실행되고 ㅠㅠ;;; 미치겠어요.. 다운이 안되요... 대상저장'이 활성화 되서 떠야 하잖아요, 근데 갑자기... 마이크로소프트에서 개발된 최근 제품들은 엑셀이건 DOC...

php 포인트 질문이요 ㅠㅠ

<?php session_start(); $id =$_SESSION['id']; $name = $_SESSION... 우선 디비에 저장이라도 되게 카운트 식으로라도 하려고 하는데요 ㅠ 안되요 ㅠㅠ...

php 소스여 ㅠㅠ

... 저는 디비에 값이 있을경우엔 업데이트 없을경우엔 인설트 문을 하고 싶은데 그게 잘 안되요 ㅠ 둘다 같이 안쓰고 한쪽만 쓰면 저장 잘 됩니다...

아크로뱃리더...

... A.PDF 로 저장하고. 다시 아크로뱃리더기로 열면 A.PDF만... 그러나 저는 1페이지밖에 저장이 안되요.ㅠㅠ... 주소는 http://pdfpro.co.kr/download/pdf-pro_free.php 이구요, 개인...