테스트 사이트 - 개발 중인 베타 버전입니다

외부db 데이터 뿌려주기 채택완료

bde6891 10년 전 조회 5,225

안녕하세요.

호스팅에서 제공하는 내부db와

외부서버에서 쓰는 외부db 두가지를 사용하고 있습니다.

 

board2라는 게시판에 외부db에서 board2라는 테이블에 있는 db를 select해서 뿌려주고자 하는데

외부db에있는 자료들이 $list에 안담아지는것 같습니다..

 

보통 그누보드를 설치하고

list.php에 코드를 보면

</p><p>        <?php
        for ($i=0; $i<count($list); $i++) {
         ?>
        <tr class="<?php if ($list[$i]['is_notice']) echo "bo_notice"; ?>">
        
            <td class="td_num">
            <?php
            if ($list[$i]['is_notice']) // 공지사항 
                echo '<strong>공지</strong>';
            else if ($wr_id == $list[$i]['wr_id'])
                echo "<span class=\"bo_current\">열람중</span>";
            else
                echo $list[$i]['num'];
             ?>
            </td>
            
            <?php if ($is_checkbox) { ?>
            <td class="td_chk">
                <label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['subject'] ?></label>
                <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
            </td>
            <?php } ?>  
            <td class="td_컬럼"><?php echo $list[$i]['컬럼'] ?></td>​</p><p> </p><p>

 

이런식으로 구성되어 있어서

           

 

이 부분에 컬럼명만 맞춰서 코딩해주면 끝날 줄 알았는데 전혀 값을 못가져오더라구요.

 

혹시몰라서 update쿼릴르 사용해보니 작동하는거보니 연동은 성공한 거 같은데..

 

 

</p><p>        //테스트
         $sql = "select * from board2";
         $list = mysql_query($sql);
        for ($i=0; $i<count($list); $i++) {​</p><p>

 

이런식으로 새로 $list에 담으려고 했으나..여전히 데이터를 못가져옵니다.

 

</p><p>        //테스트
         $sql = "select * from board2";
         $data = mysql_query($sql);
         while($data = mysql_fetch_array($result)){​</p><p> </p><p>

 

이런식으로 $data에 새로 담으면..값은 잘 가져오지만

다른 페이징 기능이 작동하지 않기에..

 

어딜 수정해줘야 할까요..?

 

 

 

 

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

답변 2개

채택된 답변
+20 포인트

그누보드에서 사용하는 게시판일 경우 list.php 페이지에서 get_list함수를 통해 변수들을 정의하거나 내용을 볼 수 있게 수정이 되어서 가져와집니다  

그누보드가 아닌db를 불러올때는 같은 방법으로 쓰시면 안되고 따로 불러오셔야겠지요 

$sql = "select * from 그누이외 게시판 ";

$result = sql_query($sql);

for($i=0; $row = sql_fetch_array($result); $i++){

    $list2[$i] = $row; 

}

print_r2($list2); 

 

이러한 형태로 값을 새로 정의해서 불러오시면 될듯 합니다 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 8개

b
bde6891
10년 전
다른 방식으로 불러오는 건 해결했는데..
다른 페이징 기능이 적용이 안되서요..
불량학생
10년 전
그리고 이 페이지를 페이징하고 싶다면 페이징에 관한 부분을 select부분에 추가하셔야겠지요
그누보드에서 사용하는 변수와 겹치지 않게 하시는 것도 방법입니다
불량학생
10년 전
$write_pages2 = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page2, $total_page2, './board.php?bo_table='.$bo_table.$qstr.'&amp;page2=');

echo ($write_pages2);
머 대충 이러한 형태로 사용을 하시면 될듯합니다
b
bde6891
10년 전
아 겹치지 않게요?
저는 list에 담아서 그대로 쓸 생각이었는데...
페이징부분은 아예 제가 새로 코딩해줘야하는거죠?
불량학생
10년 전
$total_count2 = ''; //이부분 외부db 전체 게시글 수
$total_page2 = ceil($total_count2 / $page_rows); // 전체 페이지 계산
불량학생
10년 전
기본적으로 $total_count 가 전체 페이지입니다
이녀석을 $total_count2로 해서 외부에서 불러온 db의 전체값을 넣습니다
$total_page2 = ceil($total_count2 / $page_rows); // 전체 페이지 계산
$from_record2 = ($page2 - 1) * $page_rows; // 시작 열을 구함
이런식으로 페이지 계산에 필요한 값들만을 따로 정의 하셔서 넣어주셔야겠지요
불량학생
10년 전
한페이지에서 같은 변수값에 넣어서 사용해도 좋지만 헛갈리지 않게 따로 설정을 하셔서 쓰시는게 좋습니다 머 코딩하는 사람 맘이긴하지만요
b
bde6891
10년 전
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

이런식으로 코딩이 되어있는데..
total_count2를 쓰려면

$sql2, $row2, total_count2 이렇게 세가지를 변경해줘야하는거죠?

$sql2 = "select count(*) from 외부db테이블";
$row2 sql_fetch($sql2);
$total_count2 = $row2['cnt'];

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

10년 전

board2라는 것이 외부 테이블인가요?

 

그누보드 테이블 규칙은 g5_write_board2일 텐데요.

 

외부쪽 DB가 그누보드 아닌가요?

 

저에게 댓글 주실 때 그누보드라고 하셨는데요.

 

db 컨트롤 하는 명령어에 대한 이해도가 없으신것 같은데요.

 

mysql_query

mysql_fetch_array

등등 php mysql연동 db 명령어 그런것 조회해서 

이해도를 높이세요.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

b
bde6891
10년 전
외부쪽도 그누보드를 사용하긴 하는데, 테이블으 변형을 해서 g5_write_없이 그냥 board2으로 작성되어있습니다.

만일 테이블명이 다르다면 어떻게 처리해주나요?

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

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

로그인