[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 メーリングリストの案内