특정게시판 첨부파일 이미지 불러오기

특정게시판 첨부파일 이미지 불러오기

QA

특정게시판 첨부파일 이미지 불러오기

본문

그누보드 5 입니다.

게시판 이름은 banner이구요 

banner 게시판에 첨부파일로 이미지를 올리면 메인화면에 이미지가 출력되게 하려고 하는데 이미지가 출력이 되질 않습니다.

어느 부분이 잘못된 것인지 조언 부탁드립니다.

 

----------------소스부분------------

<?

    include_once("./_common.php");

 

    $sql = " select * from G5_write_banner where ca_name='MAIN_SLIDE' AND wr_is_comment = 0 ";

    $result = sql_query($sql, false);

 

?>

 

<!DOCTYPE html>

<html>

<head>

<body>

    <div class="bg-danger" id="slidebox">

        <ul id="slider">

<?

    $i=0;

    while ($row = sql_fetch_array($result))

    {

        $sql2 = " select * from G5_board_file where bo_table='banner' and wr_id=$row[wr_id] ";

        $result2 = sql_query($sql2, false);

        $row2=sql_fetch_array($result2);

?>

            <li>

               <!-- <a href="<?=$row[wr_link1]?>" target="_blank"><img src="<?=$G5['path']?>/data/file/banner/<?=$row2[bf_file]?>" border="0"></a>-->

            </li>

<?

    }  

?>

        </ul>

    </div>

 

 

    <script type='text/javascript'>

        var x = 310;

        var slider = document.getElementById("slider");

        var slideArray = slider.getElementsByTagName("li");

        var slideMax = slideArray.length - 1;

        var curSlideNo = 0;

 

        for (i = 0; i <= slideMax; i++) {

            if (i == curSlideNo) slideArray[i].style.left = 0;

            else slideArray[i].style.left = -x + "px";

        }

 

        slider.addEventListener('click', function () {

            changeSlide();

        }, false);

 

        var aniStart = false;

        var next = 1;

        var changeSlide = function(){

            if (aniStart === true) return;

            next = curSlideNo + 1;

            if (next > slideMax) next = 0;

            aniStart = true;

            sliding();

        }

 

        function sliding() {

            var curX = parseInt(slideArray[curSlideNo].style.left, 10);

            var nextX = parseInt(slideArray[next].style.left, 10);

            var newCurX = curX + 10;

            var newNextX = nextX + 10;

            if (newCurX >= x) {

                slideArray[curSlideNo].style.left = -x + "px";

                slideArray[next].style.left = 0;

                curSlideNo = curSlideNo + 1;

                if (curSlideNo > slideMax) curSlideNo = 0;

                aniStart = false;

                return;

            }

            slideArray[curSlideNo].style.left = newCurX + "px";

            slideArray[next].style.left = newNextX + "px";

            setTimeout(function () {

                sliding();

            }, 20);

        }

        setInterval(changeSlide,3000);

    </script>

    </script>

</body>

</html>

이 질문에 댓글 쓰기 :

답변 4


$sql2 = " select * from G5_board_file where bo_table='banner' and wr_id='".$row['wr_id']."' and bf_no = 0 ";
$row2= sql_fetch($sql2);

첫번째 파일을 가져오는  and bf_no = 0 이것이 빠진것 같습니다.
$row2= sql_fetch($sql2); 이렇게 수정하면 될 것입니다.

 

php 버전이 높으면 위의 코드는 오류 날 수 있을 것입니다.
<?php .... ?>
이렇게 하고 $row['wr_id'] 이 분도 이렇게 해줘야 합니다.


<?php
    $sql = "SELECT * FROM G5_write_gallery WHERE ca_name='MAIN_SLIDE' AND wr_is_comment = 0";
    $result = sql_query($sql, false);
?>
<!DOCTYPE html>
<html>
<head>
    <style>
        #slidebox {
            overflow: hidden;
            position: relative;
        }
        #slider li {
            position: absolute;
            transition: left 0.5s;
            list-style: none;
        }
    </style>
</head>
<body>
    <div class="bg-danger" id="slidebox">
        <ul id="slider">
<?php
    while ($row = sql_fetch_array($result)) {
        $sql2 = "SELECT * FROM G5_board_file WHERE bo_table='banner' AND wr_id={$row['wr_id']}";
        $result2 = sql_query($sql2, false);
        $row2 = sql_fetch_array($result2);
        $imgSrc = htmlspecialchars("{$G5_URL}/data/file/banner/{$row2['bf_file']}", ENT_QUOTES);
        $link = htmlspecialchars($row['wr_link1'], ENT_QUOTES);
?>
            <li>
                <a href="<?= $link ?>" target="_blank">
                    <img src="<?= $imgSrc ?>" alt="Slide Image">
                </a>
            </li>
<?php
    }
?>
        </ul>
    </div>
<script>
    var x = 310; // 이미지 너비
    var slider = document.getElementById("slider");
    var slideArray = slider.getElementsByTagName("li");
    var slideMax = slideArray.length - 1;
    var curSlideNo = 0;
    // 초기 슬라이드가 존재하는지 확인
    if (slideArray.length === 0) {
        console.error("슬라이드 요소가 없습니다.");
        alert("슬라이드가 로드되지 않았습니다. 데이터를 확인해주세요.");
        throw new Error("No slides found.");
    }
    // 초기 슬라이드 위치 설정
    for (var i = 0; i <= slideMax; i++) {
        slideArray[i].style.left = (i === curSlideNo) ? "0px" : -x + "px";
    }
    var aniStart = false;
    function changeSlide() {
        if (aniStart) return;
        var next = (curSlideNo + 1 > slideMax) ? 0 : curSlideNo + 1;
        if (!slideArray[curSlideNo] || !slideArray[next]) {
            console.error("슬라이드 요소가 정의되지 않았습니다.");
            return;
        }
        aniStart = true;
        // 애니메이션 수행
        slideArray[curSlideNo].style.left = -x + "px";
        slideArray[next].style.left = "0px";
        setTimeout(function () {
            curSlideNo = next;
            aniStart = false;
        }, 500);
    }
    // 3초마다 슬라이드 전환
    setInterval(changeSlide, 3000);
</script>
</body>
</html>

첨부해 주신 소스로 했을 경우
경고문구 "슬라이드가 로드되지 않았습니다. 데이터를 확인해주세요" 가 출력되는데
어떤 문제 때문에 경고 문구가 출력되는지 설명 부탁드리겠습니다.

while() 문에 어떠한 문제가 있는건가요?

(테마를 사용하고 있고 banner 게시판 MAIN_SLIDE 분류에서 첫번째 첨부파일로 이미지를 첨부하고 게시글을 작성한 상태입니다.)

그냥 안된다고 하지말고 오류의 정확한 증상을 이야기하세요..
php 자체 500 에러가 난다던지.
니면 이미지가 엑박으로 나온다던지..
엑박으로 나오면 해당 이미지의 URL 이 어떻게 표현되는지...

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

회원로그인

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