[PHP-users 19951] Re: テーブルのデータをEXCELに、コピーしたい

kohei-w kohei-w @ wd6.so-net.ne.jp
2004年 1月 19日 (月) 13:52:29 JST


kohei-wと申します。

お役に立てるか分かりませんが、以前、
私も同じような質問をしたことがあります。
結果、以下のようなスクリプトに落ち着きました。
ご参考にして下さい。

-----Original Message-----
From: php-users-bounces @ php.gr.jp [mailto:php-users-bounces @ php.gr.jp]On
Behalf Of kohei-w
Sent: Tuesday, December 09, 2003 8:01 AM
To: PHP-users ML
Subject: [PHP-users 19273] Re: PHPからMYSQLのエクスポートについて


自己レスです。

Setoさん、アドバイスありがとうございました。
やはり、パーミッションを下げることが不安で
もう少し探していたら、

「SQLからSELECTしたデータをcsvファイルとしてダウンロードする」

という仕組みがありましたので、
これで進めたいとおもいます。

アドバイスありがとうございました。

kohei.W
----------------------------------------------------------------------------
------------------------------
<?php

//ダウンロード前に表示するダイアログの指定
header("Content-Type: application/octet-stream");

//ダウンロード前に表示するダイアログの指定 ファイル名を bu+日付.csv
//と指定
header("Content-Disposition: attachment; filename=bu".date(ymd).".csv");

//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--root
$dbHandle = mysql_connect("localhost","root","root");

//DBの接続に失敗した場合はエラー表示をおこない処理中断
if ($dbHandle == False) {
	print ("can not connect db\n");
	exit;
}

//db名  test
$db = "cate2";

//SQL文 tab1表からnumber列の値の昇順にソートした全行を取り出す
$sql = "select * from table_name order by number1";

//SQL文を実行する
$rs = mysql_db_query($db,$sql);

//mysql_num_fields 関数を使用し列数を取得する
$fields = mysql_num_fields($rs);

//mysql_num_rows 関数を使用し行数を取得する
$rows = mysql_num_rows($rs);

//取り出した行数分繰り返す
for($i=0;$i<$rows;$i++){

//列数分繰り返す
	for($j=0;$j < $fields;$j++){

//列の内容出力する
		print(mysql_result($rs,$i,$j));

//最終列でない場合は カンマ を出力する
		if ($j < $fields - 1)
			print(",");
	}

//改行コードを出力する
	print("\n");
}

?>


_______________________________________________
PHP-users mailing list
PHP-users @ php.gr.jp
http://ns1.php.gr.jp/mailman/listinfo/php-users




PHP-users メーリングリストの案内