2026, 새로운 도약을 시작합니다.

일반페이지에서 db에 저장된 데이터 불러오는 문제 문의 채택완료

안녕하세요

일반페이지에서 DB에 저장된 데이터를 불러오려고 하는데 잘 안되서 이렇게 문의 드립니다.

소스코드는 다음과 같이 작성했습니다.

test.php

Copy






 

            

            

  // 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개

채택된 답변
+20 포인트
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개

또는 다음과 같이 할수도 있습니다.

// 데이터베이스 연결 설정
/* $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);
}
db는 연결이 되었는데 DB에 저장된 데이터는 불러올 수 가 없네요 ㅠㅠ
어디가 잘못 된걸까요?

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

복잡한 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;
}
}

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

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

로그인
🐛 버그신고