다른 DB에 있는 데이타 가져와서 입력하기???

다른 DB에 있는 데이타 가져와서 입력하기???

QA

다른 DB에 있는 데이타 가져와서 입력하기???

사용하는 빌더

아미나

그누보드5(영카트) 버전

5.4.21

사용 PHP 버전

5.4 이하

본문

교육관련 홈페이지를 만들어서 운영중입니다.

 

기본적인 개념은 홍길돌이라는 사람이 1년동안 수강했던 교육이력을 보여줘야 하는데요...

교육과정은 A, B, C 세가지 유형으로 구분되어지며 각기 다른 게시판을 사용하고 있습니다.

 

진행방법은

- 교육담당자가 A유형에 신규 강좌개설

- 홍길동 개설된 강좌 수강신청 및 수강

- 교육담당자 수강확인

- 홍길동 수강 내용을 해당 교육과정(A, B, C 중 한 곳) DB에 기록

 

홍길동은 위와 같은 방법으로 B, C 유형에도 개설된 강좌를 수강할 수 있으며, 해당 수강내용은 각각의 DB에 기록됩니다.

 

제가 알고 싶은 것은,

홍길동이라는 사람에 대한 A, B, C 게시판 DB에 입력된 수강확인 내용을 별도의 게시판 DB에 자동으로 입력되게 할 수 있는 방법이 있는지입니다.

 

- A게시판 DB에 입력된 '2025년 HTML 기초과정' 수강내용(교육과정명, 수강여부 등)

- B게시판 DB에 입력된 '2025년 포토샵 중급과정' 수강내용(교육과정명, 수강여부 등)

- C게시판 DB에 입력된 '2025년 '3D MAX 기초과정' 수강내용(교육과정명, 수강여부 등)

- D게시판 DB : 홍길동의 A, B, C 게시판에 입력된 데이타를 가져와서 D데이타에 기록되게 하는 방법???

 

어떤 방법이 있을까요? 바쁘시겠지만 부탁드려 봅니다.

 

 

 

이 질문에 댓글 쓰기 :

답변 4

A, B, C게시판의 수강확인 데이터를 Trigger를 활용해

D게시판 DB에 자동으로 입력하는 방식으로, 각 게시판 DB는 독립적으로 운영되면서도,

홍길동의 전체적인 수강이력을 D게시판에서 효율적으로 통합 관리되게 ~

1. A, B, C게시판 테이블에 각각 AFTER INSERT와 AFTER UPDATE 트리거를 생성하여

  수강확인 데이터가 입력되거나 수정될 때마다 자동 실행.

2. 각 트리거는 홍길동의 수강 이력이 입력 또는 업데이트되는 순간,

  사용자의 ID, 교육과정명, 수강여부, 수강날짜를 D게시판 테이블로

  자동으로 복사/업데이트하는 SQL 쿼리를 실행.

3. D게시판 DB의 테이블 구조는 사용자ID, 사용자명, 교육유형(A, B, C),

  교육과정명, 수강여부, 수강날짜, 갱신일자 등이 적절히 관리되게 하시면~
 

bbs/d_course.php 파일을 만들어 table_d 데이터가 조회되도록 구현하시고,

트리거 SQL은 /adm/trigger.sql에 두어 관리자만 실행하는 것이 최적일 듯합니다.

=== 관리자만 트리거 실행 가능 (adm/trigger_exec.php) ===
<?php
include_once('../config.php'); // DB 연결

if (!defined('_ADMIN_')) {
    die('Access Denied');
}

$sql = file_get_contents('trigger.sql');

if (mysqli_multi_query($conn, $sql)) {
    echo "트리거가 성공적으로 적용되었습니다.";
} else {
    echo "트리거 적용 실패: " . mysqli_error($conn);
}
?>

=== 일반 회원이 접근할 D 게시판 데이터 조회 파일 (bbs/d_course.php) ===
<?php
include_once('../config.php'); // DB 연결 설정

// 일반 회원도 접근 가능
$result = mysqli_query($conn, "SELECT * FROM table_d ORDER BY last_updated DESC");

echo "<table border='1'>
<tr>
<th>이름</th>
<th>교육 유형</th>
<th>교육 과정</th>
<th>수강 여부</th>
<th>완료 날짜</th>
</tr>";

while($row = mysqli_fetch_assoc($result)) {
    echo "<tr>
    <td>".$row['user_name']."</td>
    <td>".$row['course_type']."</td>
    <td>".$row['course_name']."</td>
    <td>".($row['is_completed'] ? '완료' : '미완료')."</td>
    <td>".$row['completed_date']."</td>
    </tr>";
}
echo "</table>";
?>

A,B,C를 별도로 D에 기록하시려는 의도가 무엇일까요?
수강내역을 한번에 보고자 하시는거라면 해당 게시판을 전체적으로 불러오도록 하시면 되지 않을까 싶은데요

개인별로는 말씀하신 것처럼 가능합니다만.... 관리자 입장에서 전체 수강생의 교육 이수현황을 보고싶어서 그렇습니다.

말씀하신 것처럼 여러개 게시판의 데이타를 불러와서 하기에는 전체 수강생(3000명 정도)이 너무 많아서요... 시스템에 맣은 부담을 가져오더라구요.......

그렇다면 A,B,C에 따른 회원별 기준으로 D 게시판에 기록을 하도록 처리한후
A,B,C 백단에서 반영시마다 변경 반영하도록 기능 구현을 하여 적용하도록 해야 하지 않나 싶습니다.

게시판 매칭되는 값들로 해당 데이터 불러와서 넣으면 되는거 아닌가요? 질문만으로는 정확한 의도를 알기 힘든거 같습니다. 쿼리문에 대해서 알지를 못하시는걸까요?

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

회원로그인

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