이미지파일 덮어씌우기

이미지파일 덮어씌우기

QA

이미지파일 덮어씌우기

본문

이미지 저장 테이블이 2개있습니다 필드와 구조 모두 같습니다.

수정시 board_file_temp에 저장되고 수정이 확인되면 board_file에 덮어씌워집니다(최대 4개파일)

단 wr_id(게시물번호),bo_table(게시판유형),bf_no(파일번호)를 확인 후 값이 있으면 업데이트를 하고 

없으면 insert 시키는 형식입니다 밑과같이하면 insert는 되는데 값들이 안넘어오는 상황입니다. 또어지저찌해도 파일이 3개면 1개만 insert가 됩니다.

insert 파라미터를 지금 밑에는 '{$bk['bf_source']}', 이렇게 하고있는데 '{$bk[$i]['bf_source']}' 이렇게해도 마찬가지입니다. 너무 오래걸려서 조언을 좀 구하고싶습니다...

 

$sql3 = "SELECT * FROM g5_board_file_temp WHERE wr_id = '$wr_id' AND bo_table = '$bo_table'";

$bk_result = sql_fetch($sql3);

 

for ($i = 0; $i < $total_cnt2; $i++) {

$bk = sql_fetch_array($bk_result);

if (empty($bk)) {

$trans_bf = "INSERT INTO g5_board_file

SET bo_table = '{$bo_table}',

wr_id = '{$wr_id}',

bf_no = $i,

bf_source = '{$bk['bf_source']}',

bf_file = '{$bk['bf_file']}',

bf_content = '{$bk['bf_content']}',

bf_fileurl = '{$bk['bf_fileurl']}',

bf_thumburl = '{$bk['bf_thumburl']}',

bf_storage = '{$bk['bf_storage']}',

bf_download = 0,

bf_filesize = '{$bk['bf_filesize']}',

bf_width = '{$bk['bf_width']}',

bf_height = '{$bk['bf_height']}',

bf_type = '{$bk['bf_type']}',

bf_datetime = '{$bk['bf_datetime']}'";

sql_query($trans_bf);

} else {

$trans_bf = "UPDATE g5_board_file

SET bf_source = '{$bk['bf_source']}',

bf_file = '{$bk['bf_file']}',

bf_content = '{$bk['bf_content']}',

bf_fileurl = '{$bk['bf_fileurl']}',

bf_thumburl = '{$bk['bf_thumburl']}',

bf_storage = '{$bk['bf_storage']}',

bf_filesize = '{$bk['bf_filesize']}',

bf_width = '{$bk['bf_width']}',

bf_height = '{$bk['bf_height']}',

bf_type = '{$bk['bf_type']}',

bf_datetime = '{$bk['bf_datetime']}'

WHERE bo_table = '{$bo_table}'

AND wr_id = '{$wr_id}'

AND bf_no = '{$i}'";

sql_query($trans_bf);

}

}

이 질문에 댓글 쓰기 :

답변 3

첨부가 모두 안나오는 것은 아래처럼 하면 됩니다

$sql3 = "SELECT * FROM g5_board_file_temp WHERE wr_id = '$wr_id' AND bo_table = '$bo_table' order by bf_no";

$bk_result = sql_query($sql3);

그 다음 코드가 또 이상 합니다

$bk = sql_fetch_array($bk_result);

if (empty($bk)) {

$trans_bf = "INSERT INTO g5_board_file

SET bo_table = '{$bo_table}',

wr_id = '{$wr_id}',

bf_no = $i,

bf_source = '{$bk['bf_source']}', <--- empty($bk)인데 $bk['bf_source'] 값이 있을 까닭이 없죠

bf_file = '{$bk['bf_file']}',<--- 여기도 마찬가지이고 이하 모든 변수가 마찬가지로 값이 없는 것이 정상

=================

그리고 무엇을 하려는지 이해하기 어렵습니다

$total_cnt2 = 3이라고 한다면, 그리고 1,2번이 첨부가 있다고 한다면

for문에서 3번째에는 값이 없겠죠 그러면 insert를 하겠다는 생각인데  어떤 값을 insert한다는 것인가요?

무언가를 insert를 했다고 쳐도 다음 수정때에는 3번째 값이 여전히 없으니

또 무언가를 insert를 한다는 것이 말이 안됩니다

 

위에서 bf_no = $i ==> bf_no = 2 로 insert 되었는데 다음 수정시 3번째 값이 없으니 또 bf_no = 2가 되게 insert 한다

이런 코드라서 완전히 엉터리 코드 입니다

 

 

 

 

 

 

 

 

다음 디버깅 코드가 도움이 될지 모르겠습니다.


...
$bk_result = sql_query($sql3);
 
for ($i = 0; $i < $total_cnt2; $i++) {
$bk = sql_fetch_array($bk_result);
 
print("<pre> {$i}. ");
print_r($bk);
print('</pre>');
 
if (empty($bk)) {
...

말씀하신대로 찍어보니 아무값도 나오지 않았습니다..

$sql3 = "SELECT * FROM g5_board_file_modify WHERE wr_id = '$wr_id' AND bo_table = '$bo_table'";

$bk_result = sql_fetch($sql3);

 

print_r($bk_result); 이렇게 찍어보니 한개의 row만 찍히는데 for문을 돌면서 insert든 update 든 되게 하려면 어떻게해야할까요

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

회원로그인

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