XpressEngine과 관련된 팁이나 강좌를 소개하는 게시판입니다.
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
XE 원 소스 코드를 수정하는 팁은 당장은 도움이 될지 몰라도 결국 XE 업그레이드를 하지 못하게 되니 팁을 올리시는 분이나 팁을 적용하시는 분이나 모두 주의 부탁드립니다.
댓글 '31'
확장 변수와 게시판을 동시에 불러오는것은 저도 잘 모르겠습니다. 같은 페이지에 나오긴 하지만 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번호");
이렇게 하시면 됩니다. 하지만 확장변수는 조금 이상하게 나올겁니다. 그러나 엑셀의 자동필터 정렬을 이용하시면
손쉽게 정리가 가능할듯합니다. ^^
조언을 바탕으로 시도를 했는데요.. 경고 메시지와 함께 한글도 깨져 나오네요. 한글관련해서 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 |
$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">
으로 변경
이렇게 해결했어요.. ㅎㅎ
제가 적용한 방법(확장변수)이에요.. 소트하고, 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>








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