테스트 사이트 - 개발 중인 베타 버전입니다

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

눈물많은소년 7개월 전 조회 2,179

그누보드 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개

7개월 전

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

로그인 후 평가할 수 있습니다

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

들레아빠
7개월 전

</p>

<p><?php

    $sql = "SELECT * FROM G5_write_gallery WHERE ca_name='MAIN_SLIDE' AND wr_is_comment = 0";

    $result = sql_query($sql, false);

?></p>

<p><!DOCTYPE html>

<html>

<head>

    <style>

        #slidebox {

            overflow: hidden;

            position: relative;

        }</p>

<p>        #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></p>

<p><script>

    var x = 310; // 이미지 너비

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

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

    var slideMax = slideArray.length - 1;

    var curSlideNo = 0;</p>

<p>    // 초기 슬라이드가 존재하는지 확인

    if (slideArray.length === 0) {

        console.error("슬라이드 요소가 없습니다.");

        alert("슬라이드가 로드되지 않았습니다. 데이터를 확인해주세요.");

        throw new Error("No slides found.");

    }</p>

<p>    // 초기 슬라이드 위치 설정

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

        slideArray[i].style.left = (i === curSlideNo) ? "0px" : -x + "px";

    }</p>

<p>    var aniStart = false;</p>

<p>    function changeSlide() {

        if (aniStart) return;</p>

<p>        var next = (curSlideNo + 1 > slideMax) ? 0 : curSlideNo + 1;</p>

<p>        if (!slideArray[curSlideNo] || !slideArray[next]) {

            console.error("슬라이드 요소가 정의되지 않았습니다.");

            return;

        }</p>

<p>        aniStart = true;</p>

<p>        // 애니메이션 수행

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

        slideArray[next].style.left = "0px";</p>

<p>        setTimeout(function () {

            curSlideNo = next;

            aniStart = false;

        }, 500);

    }</p>

<p>    // 3초마다 슬라이드 전환

    setInterval(changeSlide, 3000);

</script></p>

<p></body>

</html></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

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

7개월 전

</p>

<p>$sql2 = " select * from G5_board_file where bo_table='banner' and wr_id='".$row['wr_id']."' and bf_no = 0 ";

$row2= sql_fetch($sql2);</p>

<p>

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

 

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

로그인 후 평가할 수 있습니다

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

7개월 전

sql_query($sql2, true); <===이렇게 해보면 에러 원인이 나올것입니다

 

로그인 후 평가할 수 있습니다

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

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

로그인