게시판 글을 엑셀파일로 출력하는 내용인데 도움좀 요청드립니다... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

게시판 글을 엑셀파일로 출력하는 내용인데 도움좀 요청드립니다... 정보

게시판 글을 엑셀파일로 출력하는 내용인데 도움좀 요청드립니다...

본문

안녕하세요 그누보드 게시판에 엑셀로 출력하는 기능을 사용할려고 합니다

게시판에 입력한 내용을 출력하는데는 문제가 없는데요 게시글안에 있는 파일을 다운받은 로그파일에 대한

내용을 가져올려고 하니 잘안되네요 검색에 검색을 하다 도움을 요청드리는데요

-------------------------------------------------------------------------------
1번 테이블 : g4_write_b01
컬럼 -> [wr_id] [wr_num] [wr_reply] ~~~ 등등등 너무 많고 공통사항이여서... ㅠㅠ

2번 테이블 : g4_mw_download_log
컬럼 -> [dl_id] [bo_table] [wr_id] [bf_no] [mb_id] [dl_name] [dl_ip] [dl_datetime] [wr_1]
-------------------------------------------------------------------------------

아래 첨부한 소스를 보면 1번 테이블에서는 게시글을 그대로 엑셀로 출력하도록 설정했습니다

2번 테이블에서는 게시글에 있는 파일을 다운 받으면 1번 테이블에 있는 제목을 2번 테이블 wr_1에
저장되게 했습니다 (1번테이블 wr_subject 와 2번테이블 wr_1을 비교해서 같은걸 찾도록 설정했음)

그런다음 다운로드 이력에 dl_name(사용자이름)을 출력해주도록 설정했구요... (복잡하죠 ㅠㅠ)

그런데 엑셀파일로 출력을 클릭하면 게시글별 다운로드 이력이 뒤에 안붙고 최근에 다운받은 글에 다 붙어서 나오네요

게시글 별로 다운로드한 이력이 뒤에 붙게 하고싶은데 2개의 테이블이여서 $result 와 $qry 문이 달라

한곳에 붙어서 나오나 봅니다... 어떻게 해결할수 있는 좋은 방법이 있을까요?

죄송하지만 도와주세요...


-소스 파일-

<?php
$g4_path = "../../..";
include_once("_common.php");
include_once("$board_skin_path/mw.lib/mw.skin.basic.lib.php");

$excel_down = "g4_write_" . $bo_table;
$bo_bo = "g4_mw_download_log";

$qry = sql_query("SELECT * FROM $bo_bo WHERE wr_1 IN ( SELECT wr_subject FROM $excel_down ) ");
$result=@mysql_query("select * from $excel_down order by wr_datetime desc");

if ($ms =="excel"){
$g4[title] = "excel";
  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=excel.xls" );
  //header( "Content-Description: PHP4 Generated Data" );
 } else if ($ms =="power"){
 $g4[title] = "파워포인트 문서 다운로드";
  header( "Content-type: application/vnd.ms-powerpoint" );
  header( "Content-Disposition: attachment; filename=excel.ppt" );
  // header( "Content-Description: PHP4 Generated Data" );
 } else if ($ms =="word"){
  $g4[title] = "워드 문서 다운로드";
  header( "Content-type: application/vnd.ms-word" );
  header( "Content-Disposition: attachment; filename=excel.doc" );
  //header( "Content-Description: PHP4 Generated Data" );
 } else if ($ms =="memo"){
  $g4[title] = "메모 문서 다운로드";
  header( "Content-type: application/vnd.ms-notepad" );
  header( "Content-Disposition: attachment; filename=excel.txt" );
 } else {
  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=excel.xls" );
 }

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>제목</title>
</head>

<body>
    <table width=100% cellpadding=0 cellspacing=0 border=1>
      <tr align=center height=25 bgcolor=999999>
    <td width=50 style=font-weight:bold;>발행번호</td>
        <td width=90 style=font-weight:bold;>배포일자</td>
        <td width=70 style=font-weight:bold;>도번</td>
        <td width=120 style=font-weight:bold;>사내품번/승인품번/품명/리비젼</td>
        <td width=280 style=font-weight:bold;>총발행부수</td>
<td width=280 style=font-weight:bold;>배포자</td>
<td width=280 style=font-weight:bold;>수신처</td>
<td width=280 style=font-weight:bold;>인수자</td>
<td width=280 style=font-weight:bold;>용도</td>
<td width=280 style=font-weight:bold;>매수</td>

<!-- 요기부분에서 로그파일을 불러와야 합니다 -->
<td width=280 style=font-weight:bold;>다운로드이력</td>
  </tr>

<? while($row=sql_fetch_array($result)) { ?>

<tr>
    <td align=center>E13-<?=trim($row['wr_id'])?>DD</td>
<td align=center><?=trim($row['wr_datetime'])?></td>
<td align=center><?=trim($row['wr_subject'])?></td>
<td align=center><?=trim($row['wr_content'])?></td>
<td align=center><?=trim($row['wr_4'])?></td>
<td align=center><?=trim($row['wr_3'])?></td>
<td align=center><?=trim($row['wr_1'])?></td>
<td align=center><?=trim($row['ca_name'])?></td>
<td align=center><?=trim($row['wr_2'])?></td>
<td align=center><?=trim($row['wr_5'])?></td>

<? } ?>

<!-- 요기부분이 로그파일을 넣어주는 곳 -->
<? while($row2=sql_fetch_array($qry)) { ?>
    <td align=center><?=trim($row2['dl_name'])?> -> <?=trim($row2['dl_datetime'])?></td>

</tr>

<? } ?>

</table>

</body>
</html>
  • 복사

댓글 전체

요즘 질문하고 자꼬 자답을 적네요.. ㅠㅠ

-게시판 설정-
$excel_down = "g4_write_" . $bo_table;
$bo_bo = "g4_mw_download_log";

-sql문 설정-
$result=sql_query("select a.wr_id,a.wr_datetime,a.wr_subject,a.wr_content,a.wr_4,a.wr_3,a.wr_1,a.ca_name,a.wr_2,a.wr_5,b.dl_name,b.dl_datetime,b.wr_1 from $excel_down a, $bo_bo b where a.wr_subject = b.wr_1" );

- 출력 -
<? while($row=sql_fetch_array($result)) { ?>
<tr>
    <td align=center>E13-<?=trim($row['wr_id'])?>DD</td>
<td align=center><?=trim($row['wr_datetime'])?></td>
<td align=center><?=trim($row['wr_subject'])?></td>
<td align=center><?=trim($row['wr_content'])?></td>
<td align=center><?=trim($row['wr_4'])?></td>
<td align=center><?=trim($row['wr_3'])?></td>
<td align=center><?=trim($row['wr_1'])?></td>
<td align=center><?=trim($row['ca_name'])?></td>
<td align=center><?=trim($row['wr_2'])?></td>
<td align=center><?=trim($row['wr_5'])?></td>
<td align=center><?=trim($row['dl_name'])?> -> <?=trim($row['dl_datetime'])?></td>

</tr>

이렇게 하니 잘나오네요... 하... 머리아픔... ㅠㅠ

그런데 문제가 로그기록이 없는 글은 안나옴 에헤라디야~ 방법좀 알려주세요
테스트는 못하고 대충 해봤어요
while 문 안에 쿼리실행이 들어가는게 싫으시면 상단에
$qry = sql_query("SELECT * FROM $bo_bo WHERE bo_table = '".$bo_table."' order by dl_datetime desc ");
실행해서 배열에 놓고 루프 돌리시던지
조인문 만들어보세요



<?php
$g4_path = "../../..";
include_once("_common.php");
include_once("$board_skin_path/mw.lib/mw.skin.basic.lib.php");

$excel_down = "g4_write_" . $bo_table;
$bo_bo = "g4_mw_download_log";


$result=@mysql_query("select * from $excel_down order by wr_datetime desc");


if ($ms =="excel"){
$g4[title] = "excel";
  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=excel.xls" );
  //header( "Content-Description: PHP4 Generated Data" );
 } else if ($ms =="power"){
 $g4[title] = "파워포인트 문서 다운로드";
  header( "Content-type: application/vnd.ms-powerpoint" );
  header( "Content-Disposition: attachment; filename=excel.ppt" );
  // header( "Content-Description: PHP4 Generated Data" );
 } else if ($ms =="word"){
  $g4[title] = "워드 문서 다운로드";
  header( "Content-type: application/vnd.ms-word" );
  header( "Content-Disposition: attachment; filename=excel.doc" );
  //header( "Content-Description: PHP4 Generated Data" );
 } else if ($ms =="memo"){
  $g4[title] = "메모 문서 다운로드";
  header( "Content-type: application/vnd.ms-notepad" );
  header( "Content-Disposition: attachment; filename=excel.txt" );
 } else {
  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=excel.xls" );
 }

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>제목</title>
</head>

<body>
	<table width=100% cellpadding=0 cellspacing=0 border=1>
		<tr align=center height=25 bgcolor=999999>
			<td width=50 style=font-weight:bold;>발행번호</td>
			<td width=90 style=font-weight:bold;>배포일자</td>
			<td width=70 style=font-weight:bold;>도번</td>
			<td width=120 style=font-weight:bold;>사내품번/승인품번/품명/리비젼</td>
			<td width=280 style=font-weight:bold;>총발행부수</td>
			<td width=280 style=font-weight:bold;>배포자</td>
			<td width=280 style=font-weight:bold;>수신처</td>
			<td width=280 style=font-weight:bold;>인수자</td>
			<td width=280 style=font-weight:bold;>용도</td>
			<td width=280 style=font-weight:bold;>매수</td>

			<!-- 요기부분에서 로그파일을 불러와야 합니다 -->
			<td width=280 style=font-weight:bold;>다운로드이력</td>
		</tr>

	<? while($row=sql_fetch_array($result)) { ?>

	<tr>
		<td align=center>E13-<?=trim($row['wr_id'])?>DD</td>
		<td align=center><?=trim($row['wr_datetime'])?></td>
		<td align=center><?=trim($row['wr_subject'])?></td>
		<td align=center><?=trim($row['wr_content'])?></td>
		<td align=center><?=trim($row['wr_4'])?></td>
		<td align=center><?=trim($row['wr_3'])?></td>
		<td align=center><?=trim($row['wr_1'])?></td>
		<td align=center><?=trim($row['ca_name'])?></td>
		<td align=center><?=trim($row['wr_2'])?></td>
		<td align=center><?=trim($row['wr_5'])?></td>


		<!-- 요기부분이 로그파일을 넣어주는 곳 -->
		<td align=center>
		<?
			//[dl_id] [bo_table] [wr_id] [bf_no] [mb_id] [dl_name] [dl_ip] [dl_datetime] [wr_1]
			//$qry = sql_query("SELECT * FROM $bo_bo WHERE wr_1 IN ( SELECT wr_subject FROM $excel_down ) ");
			$qry = sql_query("SELECT * FROM $bo_bo WHERE bo_table = '".$bo_table."' and wr_id = '".$row['wr_id']."' order by dl_datetime desc ");
			while ( $row2=sql_fetch_array($qry) ) {
		?>
		<?=trim($row2['dl_name'])?> -> <?=trim($row2['dl_datetime'])?>
		<? } ?>
		</td>

	<? } ?>

	</tr>

	</table>

</body>
</html>


쫑긋님 답변 감사합니다 ^^

wr_id 값으로 처리를 못하는게.. 이런 게시판이 여러개 입니다... 부서별로 만들어져 있죠

로그파일 저장되는곳은 한곳이구요 그래서 wr_id로 비교를 하게 되면 동일 wr_id하고 겹쳐지는 문제가 있어서

생각하다 제목을 wr_1에 입력하고 서로 비교해서 가져오도록 했어요

답변주신 내용을 잘 참고해서 활용하도록 하겠습니다 ^^
© SIRSOFT
현재 페이지 제일 처음으로