엑셀로 상품업로드 하는거 잘되던데요
g5_shop_item테이블에 필드를 추가하여
업데이트 파일과 똑같이
$seller_cids = addslashes($data->sheets[0]['cells'][$i][$j++]);
$stuff_status = addslashes($data->sheets[0]['cells'][$i][$j++]);
$location_state = addslashes($data->sheets[0]['cells'][$i][$j++]);
seller_cids = '$seller_cids',
stuff_status = '$stuff_status',
location_state = '$location_state', 이런식으로 위치에 넣어주고
샘플엑셀 우측 끝 열에 테이터를 넣고 올리면 등록이 안되네요..
도데체 왜그럴까요? 3라인부터 인식하는거 같던데
| 상품코드 | 기본분류 | 분류2 | 분류3 | 상품명 | 제조사 | 원산지 |
2라인의 이 설명을 삭제하지 마라는데 그래서 삭제안하고 끝에 데이터만 넣어서 올려도 안되구요,,
2라인 제목을 바꿔도 안된느거 같구요
다른 파일하고 무슨 관계가 있나요?
왜 안되는지....이거 땜에 짜증나서 꼬박세웠네요,,,ㅠㅠ
답변 3개 / 댓글 5개
for ($i = 2 ; $i <= $maxRow ; $i++){ // 2열부터면 2부터 시작, 3열부터면 3
$data = array();
$data['변수1'] = $objWorksheet->getCell('A'.$i)->getValue();
$data['변수2'] = $objWorksheet->getCell('B'.$i)->getValue();
$data['변수3'] = $objWorksheet->getCell('C'.$i)->getValue();
$list[] = $data;
}
for($i = 0; $i < count($list); $i++){
sql_query("insert into ert into 테이블명
필드1 = '".$list[$i]['변수1']."',
필드2 = '".$list[$i]['변수2']."',
필드3 = '".$list[$i]['변수3']."',
이런 방식으로 for 문 안에 이런식으로
답변에 대한 댓글 4개
엑셀의 내용을 정의하고 배열로 만든 후에 그걸 다시 포문으로 해서 DB insert 시킨거죠..
여기서 좀더 확장형(?) 이라 하면 저 배열을 만들때 값이 존재 할경우에만 해버리시면 엑셀 작업을 잘못했을경우 빈값으로 간주시킬수 있겠지요?
$total_count++;
$data = array();
$j = 1;
$data['it_id'] = addslashes($data->sheets[0]['cells'][$i][$j++]);
$data['ca_id'] = addslashes($data->sheets[0]['cells'][$i][$j++]);
$data['ca_id2'] = addslashes($data->sheets[0]['cells'][$i][$j++]);
$data['ca_id3'] = addslashes($data->sheets[0]['cells'][$i][$j++]);
$data['seller_cids'] = addslashes($data->sheets[0]['cells'][$i][$j++]);
$data['stuff_status'] = addslashes($data->sheets[0]['cells'][$i][$j++]);
$data['location_state'] = addslashes($data->sheets[0]['cells'][$i][$j++]);
$list[] = $data;
}
이러게 할경우 $list 라는 배열에 저 $data라는 값들이 담깁니다.
그럼
for($i = 0; $i < count($list); $i++){
sql_query("insert into ert into 테이블명
it_id = '".$list[$i]['it_id]."',
ca_id= '".$list[$i]['ca_id']."',
ca_id2= '".$list[$i]['ca_id2']."',
ca_id3= '".$list[$i]['ca_id3']."',
seller_cids = '".$list[$i]['seller_cids']."',
}
이런식으로 하면 원하는 필드에 원하는 값을 넣으실수 있으실겁니다.
기존 방식을 추구하셔도 되지만 문제가 발생된다면 원본은 백업 해두고 새롭게만드시는것도 하나의방법입니다.
이걸 붙들고 있는다고 해결되는건 아닐지도 모르니깐요....
저도 이거 작업했었는데 정상적으로 잘 됐었고
특별한 방법이 없었어요 이상하네요
엑셀파일의 확장자 형식이 어떻게 될까요? xlsx 형식이라면 이걸 다른이름으로 저장하셔서 2003~2007 형식변환 해서 xls로 올리면 되는지 테스트 해보셔야 할듯 합니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
for ($i = 3; $i <= $data->sheets[0]['numRows']; $i++) {
$total_count++;
$j = 1;
$it_id = addslashes($data->sheets[0]['cells'][$i][$j++]);
$ca_id = addslashes($data->sheets[0]['cells'][$i][$j++]);
$ca_id2 = addslashes($data->sheets[0]['cells'][$i][$j++]);
$ca_id3 = addslashes($data->sheets[0]['cells'][$i][$j++]);
$seller_cids = addslashes($data->sheets[0]['cells'][$i][$j++]);
$stuff_status = addslashes($data->sheets[0]['cells'][$i][$j++]);
$location_state = addslashes($data->sheets[0]['cells'][$i][$j++]);
새로 추가하는 필드는 알려주신대로 또 for문을 돌려야 한다는 말씀이신가요?