일반페이지에서 db에 저장된 데이터 불러오는 문제 문의
본문
안녕하세요
일반페이지에서 DB에 저장된 데이터를 불러오려고 하는데 잘 안되서 이렇게 문의 드립니다.
소스코드는 다음과 같이 작성했습니다.
test.php
<?php
include_once('./_common.php');
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
add_stylesheet('<link rel="stylesheet" href="'.$g5_url.'/wm_page/map/style.css">', 0);
$g5['title'] = $group['gr_subject'];
include_once(G5_PATH.'/board.head.php');
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
?>
<?php
$bo_table = "partner";
$wr_id = "wr_id";
$sql = "SELECT * FROM g5_write_".$bo_table." WHERE wr_id = '$wr_id'";
$result = sql_query($sql); // sql_query 함수를 사용하여 SQL 쿼리 실행
if ($result && mysqli_num_rows($result) > 0) {
$data = array(); // 불러온 데이터를 저장할 빈 배열을 생성
while ($row = mysqli_fetch_assoc($result)) {
$data[] = array(
'subject' => $row['subject'],
);
}
} else {
$data = array();
}
// PHP 배열을 JSON 형식으로 변환하여 자바스크립트로 전달
echo '<script>';
echo 'const data = ' . json_encode($data) . ';';
echo '</script>';
?>
<ul class="item_list">
<script>
// PHP에서 전달한 데이터를 사용
const data = <?php echo json_encode($data); ?>;
// ul 요소를 가져옵니다.
const item_list = document.querySelector('.item_list');
// data 배열을 순회하면서 li 요소를 추가
data.forEach(item => {
// 새로운 li 요소를 생성
const li = document.createElement('li');
// li 요소의 내용을 동적으로 생성
li.innerHTML = `
<div class="img">
</div>
<div class="info">
<div class="tip">
<div class="badge_wrap_mo"></div>
<div class="badge_wrap">
<div class="badge"></div>
</div>
<button class="wish_btn"><i class="fa fa-heart"></i></button>
<p>테스트</p>
</div>
<div class="tit">
<div class="price">${item.subject}</div>
</div>
</div>
`;
// ul 요소에 li 요소를 추가
item_list.appendChild(li);
});
</script>
이렇게 코드를 만들었는데 DB의 데이터를 불러오지 못하고 있습니다.
고수님들의 조언 부탁드리겠습니다.
즐거운 주말 되세요
!-->답변 4
include_once(G5_PATH.'/board.head.php');
// 데이터베이스에 연결
$conn = new mysqli(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD, G5_MYSQL_DB);
// 연결 확인
if ($conn->connect_error) {
die("데이터베이스 연결 실패: " . $conn->connect_error);
} else {
echo "데이터베이스 연결 성공<br>";
}
이렇게 해보세요
8행에 있는 wr_id 가 잘못되었습니다
Test.php로 넘겨주는 곳이 없다면 삭제//쿼리에서도 삭제
코드를 만들었는데 DB의 데이터를 불러오지 못하고 있습니다.
==
이렇게 판단하신 증상이 무엇인가요?
JavaScript 에러가 있는지 확인해 보세요
echo 'const data = ' . json_encode($data) . ';';
이렇게 하면 JavaScript 에러가 날 듯하네요
echo 'const data = "' . json_encode($data) . '";';
따옴표가 필요 할 듯하네요
복잡한 JavaScript 보다
그냥 PHP 로 loop 돌면서 처리하면 간결할 듯하네요.
답변을 작성하시기 전에 로그인 해주세요.