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

게시판 데이타 액셀출력시 채택완료

네오빡스 6년 전 조회 3,310

<?ob_start();

 include_once($_SERVER['DOCUMENT_ROOT'] ."/apjavab05/common.php");

 if($is_admin == 'super'){
 
 
 
  //@mysql_query("SET CHARACTER SET utf8");  // 한글깨지면 주석해지
 
  $g5[title] = "엑셀 문서 다운로드";
  header( "Content-type: application/vnd.ms-excel" );
  header( "Content-Disposition: attachment; filename=".date("ymdH")."-참가목록.xls" );
  header( "Content-Description: PHP4 Generated Data" );
 
 
 
  $temp=mysql_fetch_array(mysql_query("select count(*) from g5_write_camp_test"));
  $result=mysql_query("select * from g5_write_camp_test order by wr_datetime desc");
 
  $number=$temp[0];
?>
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<style type="text/css">
 
.txt {mso-number-format:'\@'}
 
</style>
</head>
 
<body>
<table border="1">
  <tr height="50">
    <td colspan="13" style="font-size:20px; color:#ffffff; background:#666666;">참가신청 리스트</td>
  </tr>
 
<tr>

<th scope="col">번호</th>
<th scope="col">작성자</th>
<th scope="col">캠프일정</th>
<th scope="col">보호자명/관계</th>
<th scope="col">연락처(H/P)</th>
<th scope="col">주소</th>
<th scope="col">이메일</th>
<th scope="col">입금자명</th>
<th scope="col">참가자명</th>
<th scope="col">성별</th>
<th scope="col">학교명/학년</th>
<th scope="col">연락처(H/P)</th>
<th scope="col">계열선택</th>
<th scope="col">유의사항</th>
<th scope="col">가입경로</th>
<th scope="col">결제수단</th>
<th scope="col">등록시간</th>

</tr>
 
<?
while($data=@mysql_fetch_array($result)) {
 
echo "
  <tr>
 <td class='txt'>".$data[wr_num]."</td>
    <td class='txt'>".$data[wr_name]."</td>
 <td class='txt'>".$data[wr_1]."</td>
 <td class='txt'>".$data[wr_subject]."</td>
    <td class='txt'>".$data[wr_content]."</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_name]."</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>
 <td class='txt'>".$data[wr_11]."</td>
 <td class='txt'>".$data[wr_12]."</td>
 <td class='txt'>".$data[wr_18]."</td>
    <td class='txt'>$data[wr_datetime]</td>
  </tr>
";
  $number--;
 }
?>
</table>
</body>
</html>
 
<?
 
 }
 
?>

 

 

 

위 코드로 엑셀출력을 하려는데

엑셀은 다운받아집니다

컬럼도 나오는데 중요한 데이타가 나오질 않습니다  ㅠㅠ

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

답변 5개

채택된 답변
+20 포인트
유찬아빠

$data=mysql_fetch_array($result)

이렇게 수정하세요

배열을 담을 변수를 빼셨네요

로그인 후 평가할 수 있습니다

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

<?
while($data=sql_fetch_array($result)) {
$data = @iconv("UTF-8", "CP949", $data);
echo "
  <tr>
 <td class='txt'>".$data[wr_num]."</td>
    <td class='txt'>".$data[wr_name]."</td>
 <td class='txt'>".$data[wr_1]."</td>....

 

 

data가 나오지 않습니다 ㅠㅠ

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

유찬아빠
6년 전
정리해 봅시다.

1.디비 캐맄터셑이 utf8 인지 아닌지

2. utf8 이라면 해당문서 인코딩도 ansi 가 아닌 utf8 이어야 합니다.

그렇다면 SET NAMES 부분
//@mysql_query("SET CHARACTER SET utf8"); 주석처리가 되어있어야 합니다.

그리고 표현되는 $data 필드 중에 한글부분만 깨진다면

$data[한글필드] = @iconv("디비캐릭터셒", "CP949", $data[한글필드]);

이렇게 해보세요

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

타이틀은 안깨집니다 ㅠ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

유찬아빠
6년 전
디비가 utf8 인가요? 아니면 euc_kr 인가요?

루프 안에 제일 위에다가

$data = @iconv("UTF-8", "CP949", $data);

윈도우환경의 엑셀은 CP949입니다.
유찬아빠
6년 전


while($data=sql_fetch_array($result)) {

$data = @iconv("UTF-8", "CP949", $data);

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

유찬아빠

 $temp=sql_fetch("select count(*) as cnt from g5_write_camp_test");
  $result=sql_query("select * from g5_write_camp_test order by wr_datetime desc");
 
  $number=$temp['cnt'];

..

 

while($data=sql_fetch_array($result)) {

 

이렇게 그누에서 사용하는 sql 함수로 대체하세요

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

네오빡스
6년 전
정말고맙습니다~~ data는 잘나오는데...
문제가 한글이 깨져서 나옵니다
@mysql_query("SET CHARACTER SET utf8"); // 한글깨지면 주석해지
이부분 주석제거헀는데도 그러네요 ㅠㅠ
유찬아빠
6년 전
타이틀 부분도 깨지나요?

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

while($data=@mysql_fetch_array($result))을 아래처럼 수정하니 오류가 나옵니다. ㅠㅠ

 

수정코드 $data=mysql_fetch_array($result)

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in

 

로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인