sql insert 반복문 질문입니다.

sql insert 반복문 질문입니다.

QA

sql insert 반복문 질문입니다.

답변 2

본문

사진을 폴더별로 모아놓고 각 폴더별로 들어가서 

파일들을 불러와 DB에 저장시키려고 합니다.

근데 첫 폴더만 반복문이 돌고

나머지 폴더들은 반복문이 돌지 않습니다.

혹시 해결 가능하실까요...?

코드는 여기있습니다.

 

 

$sql = "SELECT gr_id, bo_table FROM g5_board WHERE gr_id = 'gallery' order by bo_order";
$result = sql_query($sql);
for($i=0; $row=sql_fetch_array($result); $i++) {
//    echo $row['bo_table']."<br>";
    if($row['bo_table'] != "filetable") {
        $dir = G5_DATA_PATH.'/file/'.$row['bo_table']."/";
    }
// 디렉토리 패스 체크
    if (!is_dir($dir)) {
        echo '"' . $dir . '" is not directory. Check the directory path.';
    }

// 디렉토리 열기
    $dir_obj = opendir($dir);
// 디렉토리내에 파일명을 배열에 저장
    $files = array();
    while (($file = readdir($dir_obj)) != false) {
        // 리눅스에서만 보이는 .와 ..와 디렉토리를 제거한 나머지를 배열에 저장합니다.
        if ($file != '.' && $file != '..' && !is_dir($dir . $file) && $file != "eli")
            array_push($files, $file);
    }
    foreach ($files as $file) {
        $path = $dir . $file;
        if (preg_match("/\.(jp[e]?g|gif|png)$/i", $path)) {
            
            $width = 1920;
            $height = (int)($size[1] * $rate);
            $size = getimagesize($path);
            
            $sql_wr_id = "SELECT wr_id FROM g5_board_file WHERE bo_table = '".$row['bo_table']."' order by wr_id desc limit 1";
            $result_wr_id = sql_fetch($sql_wr_id);
            if(!$result_wr_id) {
                $result_wr_id['wr_id'] = 0;
            } else {
                $result_wr_id['wr_id'] = (int)$result_wr_id['wr_id'] + 1;
            }
            $sql = "INSERT INTO g5_board_file SET
                bo_table = '".$row['bo_table']."',
                wr_id = ". $result_wr_id['wr_id'] .",
                bf_no = 0,
                bf_source = '{$file}',
                bf_file = '{$file}',
                bf_download = 0,
                bf_content = '',
                bf_filesize = ".filesize($path).",
                bf_width = {$size[0]},
                bf_height = {$size[1]},
                bf_type = {$size[2]},
                bf_datetime = '".G5_TIME_YMDHIS."'"
            ;
//            echo $sql."<br>";
            $result = sql_query($sql);
        }
    }
}

이 질문에 댓글 쓰기 :

답변 2

마지막에 $result = sql_query($sql); 이걸 재정의 하셨네요

이걸 다른 변수로 바꾸시면 될겁니다.

 

$result_insert = sql_query($sql); 로 하시거나

sql_query($sql); 아예 에러를 안보시겠다면 이렇게 하는것도 방법이겠네요

무의식적으로 그냥 $sql $result 라고만 쓰는 버릇이 생겼습니다ㅠㅠㅠ

이 버릇은 고쳐야 겠어요!

정말 감사합니다! 백수1995님의 답변으로 해결했습니다!!!! 진심으로 감사합니다!!!!! 사랑합니다!!!

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 41
© SIRSOFT
현재 페이지 제일 처음으로