메

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

· 2013-05-31 (금) 10:54:08 · 2814 · 7
안녕하세요 그누보드 게시판에 엑셀로 출력하는 기능을 사용할려고 합니다

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

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

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

댓글 7개

2013-05-31 (금) 12:10:29
요즘 질문하고 자꼬 자답을 적네요.. ㅠㅠ

-게시판 설정-
$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>

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

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

[code]

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


[/code]
난 왜 하이라이트 안되는거지;;

[code]
<?
$test = "test";
?>
[/code]
되네? !!!!
2013-06-03 (월) 09:57:39
쫑긋님 답변 감사합니다 ^^

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

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

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

답변주신 내용을 잘 참고해서 활용하도록 하겠습니다 ^^
2013-06-03 (월) 10:53:21
앗 아니네요 쫑긋님 잘되네요 ㅠㅠ

제가 생각을 잘못한듯요 감사합니다 ^^
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

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

+
제목 글쓴이 날짜 조회
13-05-31 조회 2,533
13-05-31 조회 5,265
13-05-31 조회 1,873
13-05-31 조회 1,693
13-05-31 조회 2,815
13-05-31 조회 1,284
13-05-31 조회 1,647
13-05-31 조회 1,096
13-05-31 조회 1,103
13-05-31 조회 868
13-05-30 조회 1,220
13-05-30 조회 1,735
13-05-30 조회 1,816
13-05-30 조회 3,761
13-05-30 조회 1,769
13-05-30 조회 1,668
13-05-30 조회 1,250
13-05-30 조회 1,656
13-05-30 조회 978
13-05-30 조회 2,149