안녕하세요.
호스팅에서 제공하는 내부db와
외부서버에서 쓰는 외부db 두가지를 사용하고 있습니다.
board2라는 게시판에 외부db에서 board2라는 테이블에 있는 db를 select해서 뿌려주고자 하는데
외부db에있는 자료들이 $list에 안담아지는것 같습니다..
보통 그누보드를 설치하고
list.php에 코드를 보면
<?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>
이런식으로 구성되어 있어서
<td class="td_컬럼"><?php echo $list[$i]['컬럼'] ?></td>
이 부분에 컬럼명만 맞춰서 코딩해주면 끝날 줄 알았는데 전혀 값을 못가져오더라구요.
혹시몰라서 update쿼릴르 사용해보니 작동하는거보니 연동은 성공한 거 같은데..
//테스트 $sql = "select * from board2"; $list = mysql_query($sql); for ($i=0; $i<count($list); $i++) {
이런식으로 새로 $list에 담으려고 했으나..여전히 데이터를 못가져옵니다.
//테스트 $sql = "select * from board2"; $data = mysql_query($sql); while($data = mysql_fetch_array($result)){
이런식으로 $data에 새로 담으면..값은 잘 가져오지만
다른 페이징 기능이 작동하지 않기에..
어딜 수정해줘야 할까요..?
답변 2개 / 댓글 9개
그누보드에서 사용하는 게시판일 경우 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개
그누보드에서 사용하는 변수와 겹치지 않게 하시는 것도 방법입니다
echo ($write_pages2);
머 대충 이러한 형태로 사용을 하시면 될듯합니다
저는 list에 담아서 그대로 쓸 생각이었는데...
페이징부분은 아예 제가 새로 코딩해줘야하는거죠?
$total_page2 = ceil($total_count2 / $page_rows); // 전체 페이지 계산
이녀석을 $total_count2로 해서 외부에서 불러온 db의 전체값을 넣습니다
$total_page2 = ceil($total_count2 / $page_rows); // 전체 페이지 계산
$from_record2 = ($page2 - 1) * $page_rows; // 시작 열을 구함
이런식으로 페이지 계산에 필요한 값들만을 따로 정의 하셔서 넣어주셔야겠지요
$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'];
board2라는 것이 외부 테이블인가요?
그누보드 테이블 규칙은 g5_write_board2일 텐데요.
외부쪽 DB가 그누보드 아닌가요?
저에게 댓글 주실 때 그누보드라고 하셨는데요.
db 컨트롤 하는 명령어에 대한 이해도가 없으신것 같은데요.
mysql_query
mysql_fetch_array
등등 php mysql연동 db 명령어 그런것 조회해서
이해도를 높이세요.
답변에 대한 댓글 1개
만일 테이블명이 다르다면 어떻게 처리해주나요?
답변을 작성하려면 로그인이 필요합니다.
다른 페이징 기능이 적용이 안되서요..