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

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

QA

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

답변 4

본문

안녕하세요?

 

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

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

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

 

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

 


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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 226
© SIRSOFT
현재 페이지 제일 처음으로