테스트 사이트 - 개발 중인 베타 버전입니다

회원목록 엑셀다운로드

· 2년 전 · 3658 · 12

<?php
include_once('./_common.php');

auth_check_menu($auth, $sub_menu, 'r');

// 엑셀 다운로드 함수
function array_to_excel($data, $filename){
    header('Content-Type: application/vnd.ms-excel; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
    header('Cache-Control: max-age=0');
    $out = fopen('php://output', 'w');
    fputs($out, "\xEF\xBB\xBF"); // UTF-8 with BOM
    fputcsv($out, array_keys($data[0]), "\t");
    foreach ($data as $row) {
        fputcsv($out, $row, "\t");
    }
    fclose($out);
}

$sql_common = " from {$g5['member_table']} ";

$sql_search = " where (1) ";
if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case 'mb_point' :
            $sql_search .= " ({$sfl} >= '{$stx}') ";
            break;
        case 'mb_level' :
            $sql_search .= " ({$sfl} = '{$stx}') ";
            break;
        case 'mb_tel' :
        case 'mb_hp' :
            $sql_search .= " ({$sfl} like '%{$stx}') ";
            break;
        default :
            $sql_search .= " ({$sfl} like '{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}

if ($is_admin != 'super')
    $sql_search .= " and mb_level <= '{$member['mb_level']}' ";

if (!$sst) {
    $sst = "mb_datetime";
    $sod = "desc";
}

$sql_order = " order by {$sst} {$sod} ";

$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";
$result = sql_query($sql);

// 테이블 출력을 위한 HTML 코드 추가
echo "<table border='1'>";
echo "<tr>";
echo "<th>번호</th>";
echo "<th>아이디</th>";
echo "<th>이름</th>";
echo "<th>닉네임</th>";
echo "<th>E-MAIL</th>";
echo "<th>전화번호</th>";
echo "<th>휴대폰번호</th>";
echo "<th>성별</th>";
echo "<th>생년월일</th>";
echo "<th>가입일</th>";
echo "<th>최종접속일</th>";
echo "<th>권한</th>";
echo "</tr>";

for ($i=0; $row=sql_fetch_array($result); $i++) {
    // 데이터 가공
    $mb_gender = '';
    if ($row['mb_gender'] == 'M') {
        $mb_gender = '남성';
    } else if ($row['mb_gender'] == 'F') {
        $mb_gender = '여성';
    }

    // 테이블 출력을 위한 HTML 코드 추가
    echo "<tr>";
    echo "<td>" . ($i+1) . "</td>";
    echo "<td>" . $row['mb_id'] . "</td>";
    echo "<td>" . $row['mb_name'] . "</td>";
    echo "<td>" . $row['mb_nick'] . "</td>";
    echo "<td>" . $row['mb_email'] . "</td>";
    echo "<td>" . $row['mb_tel'] . "</td>";
    echo "<td>" . $row['mb_hp'] . "</td>";
    echo "<td>" . $mb_gender . "</td>";
    echo "<td>" . $row['mb_birth'] . "</td>";
    echo "<td>" . $row['mb_datetime'] . "</td>";
    echo "<td>" . $row['mb_today_login'] . "</td>";
    echo "<td>" . $row['mb_level'] . "</td>";
    echo "</tr>";
}

// 테이블 출력을 위한 HTML 코드 추가
echo "</table>";

// 엑셀 다운로드
 array_to_excel($data, '회원리스트');
?>
 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 12개

오... 감사합니다!! 유용할것 같네요!
정말 유용한걸 주셨군요^^
감사
유용할것 같습니다
감사합니다
추천 꾸욱!!~ ^^
좋아요 감사 합니다.
유용하네요 감사합니다.
유익한 소스 공개해 주셔서 고맙습니다.
엑셀 다운 받아서 파일 열어보니 아래와 같은 에러가 뜨는데 어떻게 하면 없앨 수 있을까요?
엑셀로 회원리스트는 잘 나옵니다. 마지막에 이런 에러가 3줄 뜨네요.

==================================================

Warning: array_keys() expects parameter 1 to be array, null given in /******/public_html/adm/member_list_excel.php on line 13

Warning: fputcsv() expects parameter 2 to be array, null given in /******/public_html/adm/member_list_excel.php on line 13

Warning: Invalid argument supplied for foreach() in /******/public_html/adm/member_list_excel.php on line 14


[http://sir.kr/data/editor/2306/d7c1393c734b144bd88119975dffc6d3_1686868894_0919.jpg]
@까만도둑

<?php
include_once('./_common.php');

auth_check_menu($auth, $sub_menu, 'r');

// 엑셀 다운로드 함수
function array_to_excel($data, $filename){
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
header('Cache-Control: max-age=0');
$out = fopen('php://output', 'w');
fputs($out, "\xEF\xBB\xBF"); // UTF-8 with BOM
fputcsv($out, array_keys($data[0]), "\t");
foreach ($data as $row) {
fputcsv($out, $row, "\t");
}
fclose($out);
}

$sql_common = " from {$g5['member_table']} ";

$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case 'mb_point' :
$sql_search .= " ({$sfl} >= '{$stx}') ";
break;
case 'mb_level' :
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
case 'mb_tel' :
case 'mb_hp' :
$sql_search .= " ({$sfl} like '%{$stx}') ";
break;
default :
$sql_search .= " ({$sfl} like '{$stx}%') ";
break;
}
$sql_search .= " ) ";
}

if ($is_admin != 'super')
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";

if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}

$sql_order = " order by {$sst} {$sod} ";

$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";
$result = sql_query($sql);

$data = array(); // Initialize the data array

while ($row = sql_fetch_array($result)) {
// 데이터 가공
$mb_gender = '';
if ($row['mb_gender'] == 'M') {
$mb_gender = '남성';
} else if ($row['mb_gender'] == 'F') {
$mb_gender = '여성';
}

$data[] = array(
'번호' => ($i + 1),
'아이디' => $row['mb_id'],
'이름' => $row['mb_name'],
'닉네임' => $row['mb_nick'],
'E-MAIL' => $row['mb_email'],
'전화번호' => $row['mb_tel'],
'휴대폰번호' => $row['mb_hp'],
'성별' => $mb_gender,
'생년월일' => $row['mb_birth'],
'가입일' => $row['mb_datetime'],
'최종접속일' => $row['mb_today_login'],
'권한' => $row['mb_level']
);
}

// 테이블 출력을 위한 HTML 코드 추가
echo "<table border='1'>";
echo "<tr>";
echo "<th>번호</th>";
echo "<th>아이디</th>";
echo "<th>이름</th>";
echo "<th>닉네임</th>";
echo "<th>E-MAIL</th>";
echo "<th>전화번호</th>";
echo "<th>휴대폰번호</th>";
echo "<th>성별</th>";
echo "<th>생년월일</th>";
echo "<th>가입일</th>";
echo "<th>최종접속일</th>";
echo "<th>권한</th>";
echo "</tr>";

for ($i = 0; $i < count($data); $i++) {
// 테이블 출력을 위한 HTML 코드 추가
echo "<tr>";
echo "<td>" . ($i + 1) . "</td>";
echo "<td>" . $data[$i]['아이디'] . "</td>";
echo "<td>" . $data[$i]['이름'] . "</td>";
echo "<td>" . $data[$i]['닉네임'] . "</td>";
echo "<td>" . $data[$i]['E-MAIL'] . "</td>";
echo "<td>" . $data[$i]['전화번호'] . "</td>";
echo "<td>" . $data[$i]['휴대폰번호'] . "</td>";
echo "<td>" . $data[$i]['성별'] . "</td>";
echo "<td>" . $data[$i]['생년월일'] . "</td>";
echo "<td>" . $data[$i]['가입일'] . "</td>";
echo "<td>" . $data[$i]['최종접속일'] . "</td>";
echo "<td>" . $data[$i]['권한'] . "</td>";
echo "</tr>";
}

// 테이블 출력을 위한 HTML 코드 추가
echo "</table>";

// 엑셀 다운로드
array_to_excel($data, '회원리스트');
?>

이렇게 해보세용
답변 고맙습니다.
알려주신 소스로 적용해보니 에러메세지는 안뜨는데 member 테이블 내용이 한셀에 모두 추가로 나옵니다.

[http://sir.kr/data/editor/2306/3ce97659c60242f4beacac6a3e8e5e40_1686977797_2188.jpg]
@까만도둑 혹시 그누보드 몇 버전이실까요? 현재 시스템은 5.5.8.3에 php 7.2 버전 쓰고 있습니다.
@디지털홍익인간
[http://sir.kr/data/editor/2307/50aad91a6bc80d138f69d0a81644a2db_1689510639_3309.jpeg]
@디지털홍익인간 v5.5.8.3입니다. PHP Version 7.0.33이구요.

게시글 목록

번호 제목
22041
22035
22033
22028
22019
22006
22005
21995
21989
21978
21972
21961
21956
21944
21934
21932
21924
21922
21921
21910
21908
21897
21883
21881
21875
21854
21852
21851
21829
21817