엑셀 excel 다운로드 - 게시판 리스트 중 체크박스된 것만

엑셀 excel 다운로드 - 게시판 리스트 중 체크박스된 것만

QA

엑셀 excel 다운로드 - 게시판 리스트 중 체크박스된 것만

본문

안녕하세요?

 

아래 엑셀 다운로드 코드 중에서...

게시판 리스트 중에서 관리자 모드에서 체크된 게시글의 제목과 댓글을 엑셀로 다운로드 받으려면

어떤 코드를 넣어야 되는지요?

 

아래 코드는 게시판(예, 자유게시판)의 모든 글과 덧글을 내려받습니다.

 


<?php
include_once "_common.php";
if (!$is_admin) {
    alert("관리자만 접근 가능합니다.");
    exit;
}
//$excel_down = $g5['table_prefix'].$_GET['bo_table']; //엑셀 다운로드 테이블
$excel_down = "g5_write_".$_GET['bo_table']; //엑셀 다운로드 테이블
// $excel_down = "g5_write_free"; //엑셀 다운로드 테이블

$wr_id = $_GET['wr_id'];
include_once "_common.php";
//_query("SET CHARACTER SET utf8");  // 한글깨지면 주석해지
if ($ms =="excel"){
    $g5[title] = "엑셀 문서 다운로드";
    header( "Content-type: application/vnd.ms-excel" );
    header( "Content-Disposition: attachment; filename=excel.xls" );
    //header( "Content-Description: PHP4 Generated Data" );
} else if ($ms =="power"){
    $g5[title] = "파워포인트 문서 다운로드";
    header( "Content-type: application/vnd.ms-powerpoint" );
    header( "Content-Disposition: attachment; filename=power.ppt" );
    // header( "Content-Description: PHP4 Generated Data" );
} else if ($ms =="word"){
    $g5[title] = "워드 문서 다운로드";
    header( "Content-type: application/vnd.ms-word" );
    header( "Content-Disposition: attachment; filename=word.doc" );
    //header( "Content-Description: PHP4 Generated Data" );
} else if ($ms =="memo"){
    $g5[title] = "메모 문서 다운로드";
    header( "Content-type: application/vnd.ms-notepad" );
    header( "Content-Disposition: attachment; filename=text.txt" );
} else {
    header( "Content-type: application/vnd.ms-excel" );
    header( "Content-Disposition: attachment; filename=보고서.xls" );
}
header( "Content-Description: PHP5 Generated Data" );
// 원글 + 코멘트 다운로드
$temp=sql_fetch_array(sql_query("select count(*) from {$excel_down} "));
$result=sql_query("select * from {$excel_down} order by wr_datetime desc");
// 원글만 다운로드 (코멘트 제외) ,  2013-10-21 추가
//$temp=sql_fetch_array(mysql_query("select count(*) from {$excel_down} where wr_is_comment = '0' and wr_content = '{$wr_id}' "));
//$result=sql_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>국실명</td>
        <td>제출여부</td>
        <td>실적입력 확인건수</td>
        <td>총괄표 제출건수</td>
        <td>평가종료여부</td>
        <td>미종료사유</td>
        <td>비고1</td>
        <td>비고2</td>
        <td>비고3</td>
        <td>비고4</td>
    </tr>
<?php
while($data=sql_fetch_array($result)) {
    echo "
    <tr>
        <td>{$data['wr_id']}</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>
 

이 질문에 댓글 쓰기 :

답변 4



<?php
for($i=0; $i<count($_POST['check']); $i++){
    $sql = "select * from 게시판테이블 where wr_id='".$_POST['check'][$i]."'";
    $data = sql_fetch($sql);
    echo "
    <tr>
        <td>{$data['wr_id']}</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--;
}
?>

 

이렇게 구성하면 될 것 같은데 변수나 쿼리는 게시판에 맞게 수정하여 사용하면 될 것 같습니다.

체크된 것 하나만 값을 받아오는 것은 어떻게 하는지요? for 문을 돌리면 계속...빈 화면만 출력되어서  잘 모르겠습니다. T.T


$result=sql_query("select * from {$excel_down} where wr_parent = 17 order by wr_datetime desc");

이런식으로 하면  wr_parent가 17인 글의 게시글과 댓글을 모두 가져오고 제가 원하는 것이거든요.

게시판 목록화면에서 체크박스로 표시된 한개의 wr_parent 값을 얻어와서 sql에 넣으면 될 것 같은데...워낙 초초보라..어렵습니다.

$_POST['체크박스의 name']를 사용하는 변수로 수정해 주십시요

print_r($_POST[체크박스의 name]); 으로 체크박스 변수가 배열로 넘어오는 지도 확인해 주십시요
해당 for문은 하나가 배열로 넘어와도 작동합니다.

답변 감사합니다.

본문 예제에

for($i=0; $i<count($_POST['check']); $i++){
}

위와 같은 for 문만 들어가면

웹페이지를 찾을 수 없어요.
http://localhost/g5/skin/board/basic/excel.php?bo_table=free의 웹페이지가 일시적으로 다운되었거나 새 웹 주소로 완전히 이동했을 수 있습니다.
ERR_INVALID_RESPONSE

위와 같은 에러메시지를 내는 것은 왜인지요????

추출메뉴를 <?php if ($admin_href) { ?><a href='<?php echo $board_skin_url; ?>/excel.php?bo_table=<?php echo $bo_table; ?>' target='_blank'>Excel</a><?php } ?>


이런식으로 list.skin.php 에 넣어서 그런 것 같기도 하고..

for 문을 주석처리하면 페이지가 표시된다면 for과 그 내부의 쿼리가 문제가 있는 것으로 생각됩니다.

post변수의 값이 맞다면 for문은 문제가 없을 것이라 생각됩니다.

내부의 쿼리를 한번 찍어보시는 것이 오류파악에 도움이 될 것 같습니다.

<?php
include_once "_common.php";
if (!$is_admin) {
    alert("관리자만 접근 가능합니다.");
    exit;
}

//$excel_down = $g5['table_prefix'].$_GET['bo_table']; //엑셀 다운로드 테이블
$excel_down = "g5_write_".$_GET['bo_table']; //엑셀 다운로드 테이블
// $excel_down = "g5_write_free"; //엑셀 다운로드 테이블

//$wr_id = $_GET['wr_id'];
$wr_id = $wr_id;

include_once "_common.php";
//_query("SET CHARACTER SET utf8");  // 한글깨지면 주석해지

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

// 원글 + 코멘트 다운로드
$temp=sql_fetch_array(sql_query("select count(*) from {$excel_down}"));
$result=sql_query("select * from {$excel_down} where wr_parent='$wr_id' order by wr_datetime desc");

// 원글만 다운로드 (코멘트 제외) ,  2013-10-21 추가
//$temp=sql_fetch_array(mysql_query("select count(*) from {$excel_down} where wr_is_comment = '0' and wr_content = '{$wr_id}' "));
//$result=sql_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>작성일</td>
        
        <td>국실명</td>
        <td>제출여부</td>
        <td>실적입력 확인건수</td>
        <td>총괄표 제출건수</td>
        <td>평가종료여부</td>
        <td>미종료사유</td>
        <td>비고1</td>
        <td>비고2</td>
        <td>비고3</td>
        <td>비고4</td>
    </tr>

<?php
while($data=sql_fetch_array($result)) {
    
    echo "
    <tr>
        <td>{$data['wr_id']}</td>
        <td>{$data['wr_parent']}</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>

답변 감사합니다.  view.skin.php 에서 글 번호가 넘어오는 것 같아서..꼼수로..뷰화면에 excel.php 파일 링크를 걸고  쿼리에 wr_parent='wr_id' 를 넣고 해결했습니다.

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

회원로그인

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