채택완료

db에 저장된 파일명을 변수로 지정했는대 불러와지지 않습니다.

2018-01-17 (수) 16:24:27 2,255

db it_filename 컬럼에 저장된 파일명을 $ it_filename에 넣고 it_1_dir에는 폴더명을 주고  $file_it1 = $it_1_dir.'/'.$it_filename; 이렇게 준후 해당파일을 삭제하려고합니다.  근대 경로는 재대로 나오는대 db에 저장된 파일이름이 나오질않아서 그런지 삭제가 되질 않습니다.

if($it_1_del) {
    sql_query("update {$g5['g5_shop_item_table']} SET `it_1` = '', `it_1_subj` = '' WHERE it_id = '$it_id'");
$sql = " select it_filename from {$g5['g5_shop_item_table']} where it_id = '$it_id' ";
$file = sql_fetch($sql);
$it_filename    = $file['it_filename'];
$it_1_dir = G5_MEDIA_PATH;
$file_it1 = $it_1_dir.'/'.$it_filename;
sql_query($sql);
@unlink($file_it1);

|

답변 2개 / 댓글 8개

채택된 답변
+20 포인트
2018-01-17 (수) 16:34:19

echo $file[it_filename]; 

찍어보시면 어떤 결과값이 나오나요?

1. $it_1_del 이라는 변수가 존재하는지 확인 ($it_1_del 변수가 있어야만 저 위 로직을 실행합니다)

2. echo $sql; 찍어보시고 쿼리문에 오류가 없는지 확인

3. 출력 내용을 phpmyadmin 같은 툴로 쿼리를 날려 잘 작동되는지 확인

3. echo $file['it_filename'];  찍어보시고 잘 출력이 되는지 확인 하시면 될 듯 합니다

답변에 대한 댓글 6개

echo $file[it_filename]; 이거나 echo $it_1_dir 을 따로따로 출력해줬을땐 각각 파일명과 디렉터리가 출력되는대
$file_it1 = $it_1_dir.'/'.$it_filename; 두개를 한번에 동시에 출력하려면 하얀화면이 뜨네요.
음 소스코드에는 문제가 없어보이는데요

ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);

이렇게 추가하시고 어떤에러가 나는지 확인해보셔야 할 것 같네요,..
음 어지쩌지 에러를 수정하니 echo로 재대로 경로명/파일명으로
출력이 이제 잘됩니다.. $it_1_del변수도 있구요.근대 문제는 $it_1_del이면 실행되는 데이터베이스 삭제 코드는 정상적으로 동작합니다. 그러나 여전히 파일 삭제는 안됩니다... ㅠㅠㅠ 이걸로 몇시간쩨 삽질중인대.. 도대채 파일삭제는 왜 안되는걸까요?
unlink()함수가 실행되기전에 데이터베이스에서 삭제되어 $it_filename의 변수가 참조를 못하는것 같네요 unlink()함수를 sql_query($sql) 위로 올려보세요
이코드가 아예 안되는건 아니었내요... itemfrom.php에서는 정말잘됩니다. 근대 이걸 itemformupdate.php에 집어넣으만 감감무소식이내요... 희안한일인건지

혹시몰라 파일 전체를 올려봅니다. 댓글은 파일 첨부가안되서 링크로 남깁니다.
들어가셔가지고 다운로드 버튼만 누르면 바로 다운받아집니다.
https://nofile.io/f/yNSDXgtecxv/%EC%83%88+%ED%8F%B4%EB%8D%94.zip

[code]

$sql = " select it_filename from {$g5['g5_shop_item_table']} where it_id = '$it_id' ";
$file = sql_fetch($sql);
$it_filename = $file['it_filename'];
$it_1_dir = G5_MEDIA_PATH;
$file_it_1 = $it_1_dir.'/'.$it_filename;
@unlink($file_it_1);
sql_query($sql);

[/code]
아예 질문을 새로올릴께요.

잠깐 딴짓하던 사이에 새로 질문 올리고 다 하셨네요..

일단 하찌님 말씀대로 하시면 되겠네요 ^^

답변에 대한 댓글 2개

이코드가 아예 안되는건 아니었내요... itemfrom.php에서는 정말잘됩니다. 근대 이걸 itemformupdate.php에 집어넣으만 감감무소식이내요... 희안한일인건지

혹시몰라 파일 전체를 올려봅니다. 댓글은 파일 첨부가안되서 링크로 남깁니다.
들어가셔가지고 다운로드 버튼만 누르면 바로 다운받아집니다.
https://nofile.io/f/yNSDXgtecxv/%EC%83%88+%ED%8F%B4%EB%8D%94.zip

[code]

$sql = " select it_filename from {$g5['g5_shop_item_table']} where it_id = '$it_id' ";
$file = sql_fetch($sql);
$it_filename = $file['it_filename'];
$it_1_dir = G5_MEDIA_PATH;
$file_it_1 = $it_1_dir.'/'.$it_filename;
@unlink($file_it_1);
sql_query($sql);

[/code]
아예 질문을 새로올릴께요.

답변을 작성하려면 로그인이 필요합니다.