오늘은 DB 테이블의 내용을 읽어서 화일로 저장하는 방법을 알아 보겠습니다.
테이블의 내용을 화면에만 뿌려주면 나중에 실제 데이타를 사용해야 할 일이 있을때 많이 불편하거든요
그래서 만들어 낸것이 CSV(Comma Separated Values) 포맷을 이용해 화일로 만들고 이것을 받아서
EXCEL 등에서 사용하는 것 입니다.
CSV 포맷은 각각의 필드가 콤마(,)로 분리된 일반 텍스트입니다.
우선 이름,국어,영어,산수,음악의 필드를 가진 점수 테이블을 만듭니다.
create table score(
name char(10),
korean int ,
english int ,
math int ,
music int
);
insert into score values('진호',91,95,88,72);
insert into score values('영수',88,98,100,85);
insert into score values('철수',100,78,91,76);
insert into score values('희동',95,76,67,95);
insert into score values('둘리',78,66,82,100);
특별히 어려운 점은 없고 테이블 내용을 화면에 써주는 대신 화일로 써주는 것 뿐입니다.
한가지 주의할점은 파일이 생성되는 디렉토리의 퍼미션이 웹서버에게 쓰기 가능하도록 해 주셔야 합니다
# chmod 777 ./CSV 처럼요
아래는 소스 입니다.
//=============DB 접속 ========================
$connect=mysql_connect( "", "mysql", "") or die( "SQL server에 연결할 수 없습니다.");
mysql_select_db("test",$connect);
// ===================화일 생성=============
$que1=" select * from score " ;
$result=mysql_query($que1,$connect );
if(file_exists('/score.csv'))
{ unlink('./score.csv'); } // 만일 이전에 만든 화일이 있으면 지운다
$newline = chr(10); // LF(줄바꿈)의 ascii 값을 얻는다.
$fp = fopen( "./score.csv", "w" ) or die("./score.csv 화일을 열수 없습니다") ;
// score.csv 를 새로 연다
fwrite($fp,"이름,국어,영어,산수,음악"); // 타이틀 쓰고
fwrite($fp,$newline); // 줄바꾸기
$row=mysql_fetch_array($result);
while($row)
{
fwrite($fp,$row[0].",".$row[1].",".$row[2].",".$row[2].",".$row[2]);
// 점수를 한줄씩 쓰고
fwrite($fp,$newline);
// 줄 바꾸기
$row=mysql_fetch_array($result);
}
fclose($fp);
//===================== 화일 쓰기 끝 ==============
echo ("
CSV 파일로 저장하기
");
echo (" 저장FILE : score.csv ");
?>
// phpschool
'Coding' 카테고리의 다른 글
1. Django 개념알기 (0) | 2018.12.06 |
---|---|
[PHP] 다운로드 구현시 파일이름에 [1] 등이 자동으로 붙어버리는 문제 (0) | 2017.01.07 |
[PHP] Whois 조회 코드 (0) | 2017.01.07 |
웹디자이너와 프로그래머가 사이 좋게 코딩하는 방법 (0) | 2017.01.07 |
[PHP] 오픈 포트 확인 (0) | 2017.01.07 |