XpressEngine과 관련된 팁이나 강좌를 소개하는 게시판입니다.
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
XE 원 소스 코드를 수정하는 팁은 당장은 도움이 될지 몰라도 결국 XE 업그레이드를 하지 못하게 되니 팁을 올리시는 분이나 팁을 적용하시는 분이나 모두 주의 부탁드립니다.

회원정보 손쉽게 엑셀 파일로 저장하기

조회 수 4234 추천 수 4 2009.08.05 21:47:34
디비가서 정보 꺼내오기 귀찮으셨죠? ㅎㅎ
메모장을 열고 아래코드를 붙이고 원하는 이름으로 php파일을 만드세요 (예: mem_xls.php)
그리고 계정에 올리신후 실행해보시면 원하는 테이블의 정보가 한번에 엑셀로 뿅~~
저는 회원 이메일 수집때문에 쓰고 있습니다.

-------------------------------------------------------------------------


<? 
$connect_host        = "localhost";
$connect_id        = "DB아이디";
$connect_pass        = "DB비밀번호";
$connect_db        = "DB네임";
$connect_table        = "원하는테이블네임";
$xls_filename        = "filename.xls";

$connect=@mysql_connect($connect_host,$connect_id,$connect_pass);
$mysql=@mysql_select_db($connect_db,$connect);

header("Content-Type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=$xls_filename"); 
?> 

<html> 
<head> 
<meta http-equiv=Content-Type content=text/html; charset=EUC-KR>
</head> 
<body> 
<table border=1>
<tr align=center>
<?
$fields = mysql_list_fields("$connect_db", "$connect_table");
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
$field[$i]=mysql_field_name($fields, $i);
  echo "<th>".$field[$i]. "</th>";
}
?>
</tr>

<?
$result=mysql_query("select * from $connect_table");
while($data=mysql_fetch_assoc($result)){
echo"<tr>";

for ($i = 0; $i < sizeof($field); $i++) {
echo "<td>".$data["$field[$i]"]."</td>";
}

echo"</tr>";
}
?>
</table>
</body> 
</html> 


댓글 '31'

[레벨:6]건즈

2009.08.05 21:54:34
*.191.27.148

이런 멋진 일이.. 감사합니다 ^^

profile

[레벨:4]thejeon

2009.08.05 22:04:29
*.65.49.102

헤헤헤^^ emoticon

[레벨:6]건즈

2009.08.05 22:04:13
*.191.27.148

근데 원하는 테이블네임이 뭔가요?

profile

[레벨:4]thejeon

2009.08.05 22:05:45
*.65.49.102

회원 명단을 뽑고 싶으시다면 그부분에 xe_member 이렇게 넣으시면 됩니다.

즉 DB에 상에 표현되어 있는 테이블 명을 넣으시면 해당 테이블 내용이 엑셀로 나오는 거에요~

[레벨:6]건즈

2009.08.05 22:08:04
*.191.27.148

 아 그렇게 하니 잘 나오네요 감사합니다~~!! ^^

[레벨:5]도파

2009.08.06 09:15:32
*.209.117.166

좋은 정보 고맙습니다. 확장변수를 포함한 게시판에서 쓸 수 있을까요?

profile

[레벨:4]thejeon

2009.08.07 20:53:46
*.65.49.102

확장 변수와 게시판을 동시에 불러오는것은 저도 잘 모르겠습니다. 같은 페이지에 나오긴 하지만 DB테이블은 xe_document와 xe_document_extra_vars 로 분리가 되어 있습니다. 두 테이블을 따로 불러와 합쳐도 상관 없다면 이렇게 한번 해보세요.

우선 게시판 내용은 

6번째 라인 수정

 $connect_table        = "xe_document"; 

35번 라인

$result=mysql_query("select * from $connect_table where module_srl=해당 게시판 srl번호");

로 수정하시면 뽑아옵니다.


확장변수는 역시 6번째 라인 수정

$connect_table        = "xe_document_extra_vars";

35번 라인

$result=mysql_query("select * from $connect_table where module_srl=해당 게시판 srl번호");


이렇게 하시면 됩니다. 하지만 확장변수는 조금 이상하게 나올겁니다. 그러나 엑셀의 자동필터 정렬을 이용하시면

손쉽게 정리가 가능할듯합니다. ^^

[레벨:5]도파

2009.08.18 18:22:48
*.251.195.114

조언을 바탕으로 시도를 했는데요.. 경고 메시지와 함께 한글도 깨져 나오네요. 한글관련해서 EUC-KR을 UTF-8로 바꿔보았으나 동일한 증상이네요. 저장포맷을 UTF-8로 한 것 밖에 없는데.. 이렇군요.. ansi 방식으로 하면 정상적으로 xls로 저장되네요. 그러나 한글문제는 동일합니다. 해결방법이 없을까요?

 

Warning: Cannot modify header information - headers already sent by (output started at C:\APM_Setup\htdocs\xlsdb.php:1) in C:\APM_Setup\htdocs\xlsdb.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at C:\APM_Setup\htdocs\xlsdb.php:1) in C:\APM_Setup\htdocs\xlsdb.php on line 15

module_srl document_srl var_idx lang_code value eid
3930 4311 1 ko ?? ??? 3? ext_level
3930 4311 2 ko ??? ext_name
3930 4311 3 ko 123456-1234567 ext_jumin
3930 4311 4 ko ?? ??? ??3? ??????? (143-759)|@|101? 105? ext_zip
3930 4311 5 ko 02|@|123|@|4567 ext_tel
3930 4311 6 ko 010|@|1234|@|5678 ext_hp
3930 4311 7 ko sample@abcde.com ext_email
3930 4311 8 ko ??????? ext_his
3930 4311 9 ko ?? ???? ????(120??) ext_ltime
3930 4311 10 ko ext_license
3930 4311 11 ko ext_gyoahn
3930 4311 12 ko ext_nonmoon

[레벨:5]도파

2009.08.18 19:40:40
*.251.195.114

$connect=@=@mysql_connect($connect_host,$connect_id,$connect_pass); 다음 줄에

@mysql_query("set character set utf8"); 추가

 

 

<meta http-equiv=Content-Type content=text/html; charset=EUC-KR>

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

으로 변경

 

이렇게 해결했어요.. ㅎㅎ

[레벨:5]도파

2009.08.19 17:03:28
*.251.212.84

제가 적용한 방법(확장변수)이에요.. 소트하고, value 부분만 뽑아내도록 했어요. 이 코드를 복사한 후 저장은 UTF-8방식으로 저장하셔야 합니다. 여기서는 확장변수가 13개일 때 적용한 겁니다. 하나하나 풀어가는데 쉽지 않군요.. ㅎㅎ

 

<?
$connect_host        = "호스트주소";
$connect_id        = "DB_ID";
$connect_pass        = "DB_PASSWORD";
$connect_db        = "DB_NAME";
$connect_table        = "xe_document_extra_vars";
$xls_filename        = "filename.xls";


$connect=@mysql_connect($connect_host,$connect_id,$connect_pass);
@mysql_query("set character set utf8"); // 한글 입출력 문제 해결을 위해..
$mysql=@mysql_select_db($connect_db,$connect);


header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$xls_filename");
?>


<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <table border=1>


<?
$fields = mysql_list_fields("$connect_db", "$connect_table");
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
  $field[$i]=mysql_field_name($fields, $i);
  /*echo "<th>".$field[$i]. "</th>";*/
}

?>

<tr>
<td>항목A</td>
<td>항목B</td>
<td>항목C</td>
<td>항목D</td>
<td>항목E</td>
<td>항목F</td>
<td>항목G</td>
<td>항목H</td>
<td>항목I</td>
<td>항목J</td>
<td>항목K</td>
<td>항목L</td>
<td>항목M</td>
</tr>


<?
/*$result=mysql_query("select * from $connect_table");*/
$result=mysql_query("select * from $connect_table where module_srl=값 order by document_srl, var_idx");
$ctmp = 1;
echo "<tr>";
while($data=mysql_fetch_assoc($result)){
for ($i = 4; $i < sizeof($field); $i=$i+5) {
echo "<td>".$data["$field[$i]"]."</td>";

if($ctmp%13 == 0) // 확장변수 수만큼 값을 넣으세요. 여기서는 확장변수 13개임.
{
echo "</tr>";
if($i+5<sizeof($field)){
echo "<tr>";
}
}
$ctmp = $ctmp + 1;
}
}

?>

    </table>
  </body>
</html>

 

 

profile

[레벨:4]thejeon

2009.08.19 19:36:45
*.65.49.102

저는 무려 17개인데...멋지게 정렬이 되는군요. 감사합니다^^

[레벨:5]도파

2009.08.19 23:25:01
*.251.209.121

덕분에 저도 재밌는 공부했어요.. 좋은 팁 고맙습니다. 추천 한방 땡기고 가요~~ ㅎㅎ

[레벨:1]jeo

2009.11.13 19:25:07
*.115.223.46

멋집니다. 잘 뽑아져 오는데 게시판의 제목과 본문, 작성자 등이 같이 뽑아져 오는 방법은 없는지요?

profile

[레벨:3]세라오빠

2009.08.06 11:19:54
*.95.236.180

회원정보 잘 뽑아지네요 ㅎㅎ 

게시판에 올려진 정보를 뽑아내는 방법도 있었으면 좋겠어요.

profile

[레벨:4]thejeon

2009.08.07 20:55:48
*.65.49.102

위에 게시판 내용 추출법 써놨습니다. 참고 해보세요 ^^

[레벨:3]위크니

2009.08.07 17:53:03
*.106.215.12

우왕굳 제게 필요하던 팁입니다/ㅁ/

profile

[레벨:4]thejeon

2009.08.07 20:57:27
*.65.49.102

헤헤 emoticon

[레벨:1]어대훈

2009.08.08 10:04:54
*.103.103.163

ddd

주하니

2009.08.15 13:28:24
*.128.45.79

위젯이나 애드온으로 만들어 주심 저같은 초보에게는 더없이 좋을 듯 ^^;;;

profile

[레벨:4]thejeon

2009.08.17 11:19:02
*.65.49.102

흠...시도해보겠습니다. 조금만 기다려주세요^^

[레벨:5]도파

2009.08.19 12:20:43
*.251.212.84

 SQL QUERY를 이용해 table에 있는 field 값을 재정렬까지는 했는데, 이것을 업데이트 하는 방법을 모르겠네요. 업데이트가 되어야  순서대로 뽑아낼 수 있을 것 같은데요... 방법을 계속 찾아 보는데 어렵군요.

profile

[레벨:4]thejeon

2009.08.19 19:48:11
*.65.49.102

다시 DB로 업로드 하셔야 한다는 말씀이신지요?

[레벨:5]도파

2009.08.19 21:46:02
*.251.209.121

해결한 결과를 위에다 올려놨어요. ㅎㅎ.. 하루종일 매달려서.. 해결했네요...

[레벨:3]연필깎는까치

2009.08.22 15:26:48
*.207.165.197

1711_540.jpg



   으하하하 매우좋소

첨부

[레벨:7]착한악마

2009.08.24 21:32:20
*.104.172.2

회원쪽 확장변수도 도파님이 하신 방법 처럼 꺠끗하게 나오게 뽑을수 있을까요~~~

[레벨:5]도파

2009.09.02 09:18:58
*.108.88.132

 가능하리라 생각됩니다.

profile

[레벨:11]sol

2009.09.02 10:08:28
*.13.13.164

 데이타를 직접 엑셀 XML로 출력하게 되면 더 빨라요~

[레벨:1]미국서

2009.09.28 00:55:28
*.242.227.7

저한테 엑셀파일로된 주소록이있는데 이주소록을 게시판글 처럼 한주소에 하나씩 나누어 올리고 싶은데

방법이 업네요....도와 주세요  

약 3800명정도 되거든요.

부탁드립니다...

 

[레벨:5]유샤인

2009.10.18 15:52:18
*.180.139.103

희한한 프로그램이라고 봅니다.


여기 동봉한 화면 복사에서 볼 수 있듯이 날짜가 수자로가 나오지 않고 날짜형식으로 출력된다면  용도가 더 높아지겠읍니다.

 

4xls copy.jpg ..

[레벨:1]지푸

2009.10.29 23:20:35
*.55.153.108

날짜,시간으로 제대로 출력되려면 mysql db에서 필드 종류를 varchar에서 datetime로 바꾸어 주니깐 되네요, ^^;  

[레벨:1]poko

2010.01.30 15:39:31
*.165.134.65

1.화일 men_xel.php 는 어디에 저장해야 하나요?

 

2. db의 이름은 어디서 찾지요? 제 db에 접속해서 xe화일을 열어보긴 했는데, id 나 password 같은 이름이 안 보여요.

 

3. 엑셀출력을 어떻게 해주어야 하나요? 엑셀프로그램을 열고 men_xel.php를 해야 하나요, 아님 ???

문서 첨부 제한 : 0Byte/ 10.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 구 동영상 매뉴얼 이동 [2] [레벨:30]zero 2009-09-14 53270
825 하드 압축 하실때 tar cvfpz 쓰시는분들..... [3] [레벨:10]우리아기 2009-08-13 2975
824 파일첨부 에러가 날때 이렇게 하시면 됩니다. imagefile [4] [레벨:1]밀림의 왕자 2009-08-12 3170
823 모든 사이트 운영하는분들 읽어보셨으면 좋겠네요 imagefile [6] [레벨:2]NEARSTORY 2009-08-12 3665
822 mixup 애드온 Textyle에서 찾을 수 없는 증상 해결 팁 [1] [레벨:15]라르게덴 2009-08-10 3093
821 XE svn external link로 update하기 image [7] [레벨:17]하늘03 2009-08-09 3478
820 홈페이지 헤더부분에 display.handler.class.php 오류발생시 급해결방법 file [3] [레벨:1]극마 2009-08-09 3027
819 Cooliris Embed a Wall 위젯 v2.0에 동영상 반영시키기 imagemoviefile [3] [레벨:2]철쌤 2009-08-08 4375
818 알 수 없는 아이프레임이 심어졌을 때 (치명적인 바이러스) [6] [레벨:2]jjabez 2009-08-08 4508
817 XE 왕초보를 위한 글 [7] [레벨:8]휘즈 2009-08-06 4816
816 1.1.5에서 1.2.4으로 업그레이드 할 때.. [3] [레벨:1]활주로 2009-08-06 2872
815 에디터가 까맣게 나오는 현상 imagefile [1] [레벨:1]kau 2009-08-06 2687
» 회원정보 손쉽게 엑셀 파일로 저장하기 [31] [레벨:4]thejeon 2009-08-05 4234
813 텔넷/ SSH 안 되는 계정에서 TAR로 데이터 백업/XE 설치하기 [5] [레벨:1]Dream Of Veritas 2009-08-04 3327
812 사랑비 BGM 설치 부터 내 사이트에 적용까지 한방에!!!!! [2] [레벨:5]오키도키 2009-08-03 3371
811 저작권 없는 음악 사이트 [2] [레벨:5]오키도키 2009-08-03 4428
810 XE 뿐만아닌 텍스타일까지 하위 주소 없이! 도메인으로 바로연결! [13] [레벨:9]Garon 2009-07-29 5193
809 게시판 링크 무조건 새창으로 뜨게 하는 법 ^^ [4] [레벨:9]Jiyoung540 2009-07-29 3891
808 엄지 추천 기능 본문에 삽입 하고자 하실때 (급조) imagefile [2] [레벨:4]thejeon 2009-07-29 2880
807 [비나무님글 ] xe_official_v2 레이아웃 사이트맵 없애는 방법 image [3] [레벨:8]토니박스 2009-07-29 3709
806 xe 파일첨부 시 증발하는 현상 해결 팁 update [9] [레벨:1]iwishiwas.idtail.com 2009-07-28 3205



XE Login

OpenID Login