일반페이지에서 db에 저장된 데이터 불러오는 문제 문의 채택완료
안녕하세요
일반페이지에서 DB에 저장된 데이터를 불러오려고 하는데 잘 안되서 이렇게 문의 드립니다.
소스코드는 다음과 같이 작성했습니다.
test.php
// PHP에서 전달한 데이터를 사용
const data = ;
// ul 요소를 가져옵니다.
const item_list = document.querySelector('.item_list');
// data 배열을 순회하면서 li 요소를 추가
data.forEach(item => {
// 새로운 li 요소를 생성
const li = document.createElement('li');
// li 요소의 내용을 동적으로 생성
li.innerHTML = `
테스트
${item.subject}
`;
// ul 요소에 li 요소를 추가
item_list.appendChild(li);
});
이렇게 코드를 만들었는데 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>";
}
이렇게 해보세요
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
복잡한 JavaScript 보다
그냥 PHP 로 loop 돌면서 처리하면 간결할 듯하네요.
댓글을 작성하려면 로그인이 필요합니다.
코드를 만들었는데 DB의 데이터를 불러오지 못하고 있습니다.
==
이렇게 판단하신 증상이 무엇인가요?
JavaScript 에러가 있는지 확인해 보세요
echo 'const data = ' . json_encode($data) . ';';
이렇게 하면 JavaScript 에러가 날 듯하네요
echo 'const data = "' . json_encode($data) . '";';
따옴표가 필요 할 듯하네요
댓글을 작성하려면 로그인이 필요합니다.
8행에 있는 wr_id 가 잘못되었습니다
Test.php로 넘겨주는 곳이 없다면 삭제//쿼리에서도 삭제
답변에 대한 댓글 2개
현재 DB에는 정상적으로 연결이 되었다고 나옵니다. 그런데 데이터를 불러오지를 못하는데요
혹시 시간이 되신다면 한번 검토해 주시겠어요.
조언 부탁드리겠습니다.
test.php
[code]
<?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>";
}*/
// 쿼리 작성 및 실행
$sql = "SELECT * FROM partner";
$result = $conn->query($sql);
// 데이터를 담을 배열 초기화
$data = array();
// 쿼리 결과 확인 및 데이터 추출
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
// 쿼리 결과에서 필요한 필드들을 배열로 저장
$item = array(
'wr_subject' => $row['wr_subject']
);
// 배열에 추가
$data[] = $item;
}
}
$conn->close();
echo json_encode($data);
?>
<script>
// 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>테스트 10098</p>
</div>
<div class="tit">
<div class="price">${item.wr_subject}</div>
<div class="desc">${item.desc}</div>
<div class="loca">${item.loca}</div>
</div>
<div class="kwd">
<span>${item.type}</span>
<span>테스트 ${item.area}</span>
<svg></svg>
</div>
</div>
`;
// ul 요소에 li 요소를 추가
item_list.appendChild(li);
});
</script>
[/code]
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
// 쿼리 결과에서 필요한 필드들을 배열로 저장
$item = array(
'wr_subject' => $row['wr_subject']
);
// 배열에 추가
$data[] = $item;
}
}
디비가 제대로 연결되어다니 뭐 할말이좀 그렇긴한데요 그래도 이부분 체크해보세요.
이 부분은 쿼리 결과가 있을 경우에만 내부의 코드를 실행하는 부분이라는건 아시겠지만,
따라서 쿼리 결과가 없으면 데이터가 배열에 추가되지 않게 된다는거죠;;
<div class="price">${item.wr_subject}</div>
<div class="desc">${item.desc}</div>
<div class="loca">${item.loca}</div>
다음과 같이 해보세요..
// 쿼리 결과 확인 및 데이터 추출
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
// 쿼리 결과에서 필요한 필드들을 배열로 저장
$item = array(
'wr_subject' => $row['wr_subject'],
'desc' => $row['desc'],
'loca' => $row['loca'],
'type' => $row['type'],
'area' => $row['area']
);
// 배열에 추가
$data[] = $item;
}
}
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
// 데이터베이스 연결 설정
/* $servername = "G5_MYSQL_HOST";
$username = "G5_MYSQL_USER";
$password = "G5_MYSQL_PASSWORD";
$dbname = "G5_MYSQL_DB";
*/
// 데이터베이스 연결
// $conn = new mysqli($servername, $username, $password, $dbname);
// 연결 확인
if ($conn->connect_error) {
die("데이터베이스 연결 실패: " . $conn->connect_error);
}