특정게시판 첨부파일 이미지 불러오기
본문
그누보드 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
sql_query($sql2, true); <===이렇게 해보면 에러 원인이 나올것입니다
$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>
그냥 안된다고 하지말고 오류의 정확한 증상을 이야기하세요..
php 자체 500 에러가 난다던지.
니면 이미지가 엑박으로 나온다던지..
엑박으로 나오면 해당 이미지의 URL 이 어떻게 표현되는지...