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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
일반페이지에서 db에 저장된 데이터 불러오는 문제 문의

QA

일반페이지에서 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>";

}

이렇게 해보세요

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

// 데이터베이스 연결 설정
/* $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);
}

8행에 있는 wr_id 가 잘못되었습니다

Test.php로 넘겨주는 곳이 없다면 삭제//쿼리에서도 삭제

 

 

안녕하세요 님 늦은 시간에 답변 주셔서 감사드립니다.
현재 DB에는 정상적으로 연결이 되었다고 나옵니다. 그런데 데이터를 불러오지를 못하는데요
혹시 시간이 되신다면 한번 검토해 주시겠어요.

조언 부탁드리겠습니다.

test.php


            <?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>

// 쿼리 결과 확인 및 데이터 추출
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;
    }
}

코드를 만들었는데 DB의 데이터를 불러오지 못하고 있습니다.
==
이렇게 판단하신 증상이 무엇인가요?
JavaScript 에러가 있는지 확인해 보세요

echo 'const data = ' . json_encode($data) . ';';

이렇게 하면 JavaScript 에러가 날 듯하네요

echo 'const data = "' . json_encode($data) . '";';

따옴표가 필요 할 듯하네요

 

답변을 작성하시기 전에 로그인 해주세요.
전체 149
QA 내용 검색
filter #json ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT