그누보드4 리스트 엑셀 출력할때 체크박스 항목만 출력되게 하려면 어디를 손을 봐야 할까요 ㅠ

그누보드4 리스트 엑셀 출력할때 체크박스 항목만 출력되게 하려면 어디를 손을 봐야 할까요 ㅠ

QA

그누보드4 리스트 엑셀 출력할때 체크박스 항목만 출력되게 하려면 어디를 손을 봐야 할까요 ㅠ

본문

먼저 막장코더님과 해피정님 감사합니다.

이 두분이 이전에 만들어 놓으신 코딩으로 원하는 형태로는 만들었는데 문제는 엑셀 출력을 하면

해당 게시판 전체 글이 다 출력이 되어 버립니다. 하는수 없이 엑셀 작업과 매크로를 이용하여 가공의 가공을 거치고 있는데 그누보드에 검색 기능이 있는데 굳이 이럴필요 없을거 같아서 체크박스 체크된 항목만

엑셀 출력이 되게끔 하려고 여러 가지 엑셀 출력 코딩들을 살펴봐도 각기 방식이 들이 달라서 그런지

서로 잘 안먹히더라고요 ㅠㅠ 어떤건 post 어떤건 get 형식 아무튼 아직까지 일천한 저의 재주라 그렇겠지만

아래의 list.skin.php에 추가되는 코드의 적절한 위치와 추가 코딩 부분이 있어야 한다면 좀 알려 주셨으면 합니다. 언제나 챙겨봐주시는 고수님들 항상 감사합니다. ^^

 

1. 그누보드 / skin / board / basic / list.skin.php  적절한 위치에 아래 코드 추가

<? if ($admin_href) { ?><a href='<?=$board_skin_path?>/excel.php?bo_table=<?=$bo_table?>' target='_blank'>Excel</a><? } ?>


2. 그누보드 / skin / board / basic / excel.php  파일 생성
<?
$excel_down = "g4_write_" . $_GET['bo_table']; //엑셀 다운로드 테이블
$wr_id = $id = $_GET['wr_id'];

include "../../../dbconfig.php";
$db_conn = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die('서버에 접속하지 못했습니다.');
mysql_select_db($mysql_db, $db_conn);
//@mysql_query("SET CHARACTER SET utf8");  // 한글깨지면 주석해지


if ($ms =="excel"){
$g4[title] = "엑셀 문서 다운로드";
  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=상품구매.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=상품구매.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=상품구매.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=상품구매.txt" );
 } else {
  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=상품구매.xls" );
 }
  header( "Content-Description: PHP4 Generated Data" );

// 원글 + 코멘트 다운로드
$temp=mysql_fetch_array(mysql_query("select count(*) from $excel_down "));
$result=@mysql_query("select * from $excel_down order by wr_datetime desc");

// 원글만 다운로드 (코멘트 제외) ,  2013-10-21 추가
//$temp=mysql_fetch_array(mysql_query("select count(*) from $excel_down where wr_is_comment = '0' and wr_content = '$wr_id' "));
//$result=@mysql_query("select * from $excel_down where wr_is_comment = '0'  and wr_content = '$wr_id' order by wr_datetime desc");


$number=$temp[0];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">

.txt {mso-number-format:'\@'}
</style>
</head>

<body>
<table>
  <tr>
    <td>번호</td>
    <td>제목</td>
    <td>아이디</td>
    <td>이름</td>
    <td>작성일</td>
 
    <td>필드1</td>
    <td>필드2</td>
    <td>필드3</td>
    <td>필드4</td>
    <td>필드5</td>
    <td>필드6</td>
    <td>필드7</td>
    <td>필드8</td>
    <td>필드9</td>
    <td>필드10</td>
  </tr>

<?
while($data=mysql_fetch_array($result)) {
echo "
  <tr>
    <td>$number</td>
    <td>$data[wr_subject]</td>
    <td>$data[mb_id]</td>
    <td>$data[wr_name]</td>
    <td class='txt'>$data[wr_datetime]</td>
 
    <td class='txt'>$data[wr_1]</td>
    <td class='txt'>$data[wr_2]</td>
    <td class='txt'>$data[wr_3]</td>
    <td class='txt'>$data[wr_4]</td>
    <td class='txt'>$data[wr_5]</td>
    <td class='txt'>$data[wr_6]</td>
    <td class='txt'>$data[wr_7]</td>
    <td class='txt'>$data[wr_8]</td>
    <td class='txt'>$data[wr_9]</td>
    <td class='txt'>$data[wr_10]</td>
  </tr>
";
  $number--;
  }
?>
</table>
</body>
</html> 

이 질문에 댓글 쓰기 :

답변 3


 
    for ($i=0; $i<count($_POST['chk']); $i++)
    {
        // 실제 번호를 넘김
        $k = $_POST['chk'][$i];
        $wr_id = $_POST['wr_id'][$k]
 
        $result=@mysql_query("select * from $excel_down where wr_is_comment = '0'  
                    and wr_content =    '$wr_id' order by wr_datetime desc");  
                             .
                             .
                             .
    }  

 

제가 도움이 될수 있는 소스를 만들어봤습니다.

checkbox 에서 받아온 chk순서로 wr_id값을 알아온 다음

체크 한 순서만큼 쿼리 돌서 뿌리면 간단이 해결됩니다.

 

baisc 계시판을 보시거나 관리자쪽 부분을 보시면 이와 비슷한 내용이 언급되어있습니다.

선택한 내용만 뿌려서 엑셀로 내려주면 끝~~~ ^^

 

 

짜주신 코드로 excel.php속에 다음 코드 아래에 삽입 하였습니다.

 

// 원글 + 코멘트 다운로드
$temp=mysql_fetch_array(mysql_query("select count(*) from $excel_down "));

for ($i=0; $i<count($_POST['chk']); $i++)
    {
        // 실제 번호를 넘김
        $k = $_POST['chk'][$i];
        $wr_id = $_POST['wr_id'][$k]
 
        $result=@mysql_query("select * from $excel_down where wr_is_comment = '0' 
                    and wr_content =    '$wr_id' order by wr_datetime desc"); 
      }
//$result=@mysql_query("select * from $excel_down order by wr_datetime desc");

 

그런데 구문 오류가 뜨더라고요 ㅠㅠ

Parse error: syntax error, unexpected '$result' (T_VARIABLE) in /web/home/lemona/html/skin/board/basic/excel.php on line 50
이렇게요 ㅜㅡ

 

따로이 알려주신 참고사항은 삭제나 이동할때 체크한것들만 액션을 취하는것들은 죄다 자바인것 같던데요

복스리님께서 올려주신 내용도 구문 오류부분만 해결 되도 되겠지용?

 

제가 추가를 잘 못 한것 같은데 어디에 어떻게 넣어야 될지도 좀 알려 주시면 감사하겠습니다.

아래와 같이 하면 됩니다

 

1. list.skin.php 하단 관리자일때만 보이는 버튼에 액셀저장 버튼 추가

  <a href="javascript:excel_save();">선택액셀저장</a>

 

2. 하단 자바스크립트 부분에 추가

function excel_save(){

    var f = document.fboardlist;

    str = "액셀로 저장";
    if (!check_confirm(str)) return;

    f.action = "./excel_save.php";
    f.submit();

}

 

2. bbs폴더에 excel_save.php생성

<?

include_once("_common.php");

$wridStr = implode(',',$_POST[chk_wr_id]);

//원글 + 코멘트 추출

 $result=sql_query("select * from $write_table where wr_parent IN ($wridStr) order by wr_num, wr_id");

 

  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=상품구매.xls" );

  header( "Content-Description: PHP Generated Data" );

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">

.txt {mso-number-format:'\@'}
</style>
</head>

<body>
<table>
  <tr>
    <td>번호</td>
    <td>제목</td>
    <td>아이디</td>
    <td>이름</td>
    <td>작성일</td>
 
    <td>필드1</td>
    <td>필드2</td>
    <td>필드3</td>
    <td>필드4</td>
    <td>필드5</td>
    <td>필드6</td>
    <td>필드7</td>
    <td>필드8</td>
    <td>필드9</td>
    <td>필드10</td>
  </tr>

<?

  $nn=0;
while($data=sql_fetch_array($result)) {  

   if(!$data[wr_is_comment]){ $nn++; $tag=$nn;}

  else $tag = '코';

echo "<tr>
    <td>$tag</td>
  <td>$data[wr_subject]</td>
    <td>$data[mb_id]</td>
    <td>$data[wr_name]</td>
    <td class='txt'>$data[wr_datetime]</td>
 
    <td class='txt'>$data[wr_1]</td>
    <td class='txt'>$data[wr_2]</td>
    <td class='txt'>$data[wr_3]</td>
    <td class='txt'>$data[wr_4]</td>
    <td class='txt'>$data[wr_5]</td>
    <td class='txt'>$data[wr_6]</td>
    <td class='txt'>$data[wr_7]</td>
    <td class='txt'>$data[wr_8]</td>
    <td class='txt'>$data[wr_9]</td>
    <td class='txt'>$data[wr_10]</td>
  </tr> "; 
  }
?>
</table>
</body>
</html> 

 

 

 

 

 

$result=@mysql_query("select * from $excel_down where wr_is_comment = '0'  and wr_id = '$wr_id'" );

 

이런식으로 한번해보세요~

 

무조건 똑같이 하시지마시구요..참고 하셔서 응용을 하셔야합니다!

 

 

구문 오류 났던거 ; 가 빠져서 그랬던거 같고요 구문에 맞춰서 다시 코딩 해보니

엑셀 파일로 나오긴 하는데

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /web/home/lemona/html/skin/board/basic/excel.php on line 88


요것만 나오네요 ㅎㅎ 88번줄이라하면

while($data=mysql_fetch_array($result)) {

바로 이구문인데 어떻게 응용을 해야할지 ㅋㅋㅋ
열심히는 하는데 둔해서 하나하나 배우기가 어렵네요 ㅎㅎㅎ

더 알려 주시면 감사 하겟지만 일단 혼자서라도 더 파고 들어 보겟습니다 !!

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

회원로그인

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