• 締切済み

DBのデータを表示→ダウンロードする一連の動作について

MySQLデータベースのTableにあるデータをSELECT文で Web画面(PHP)に表示しています。 現在は表示しているだけなのですが、この情報をダウンロードボタンで加工してEXCELかCSVファイルに表示させるような事をしたいと思っています。 DBでは店舗と商品、あとこの2つをひも付けるTable を持っていて、加工内容は、列に店舗名、行に商品名を表示し、その商品のある店舗のフィールドに○をつけるというものです。 で、実際このような動作を作るときに、何を使って どのようにするという一連の作業内容がわからず、 調べるにも何から調べればいいのかわかりません。 どんな手順でDB、Web、Excelに何をすればいいのか、 何を使って実現すればいいのかアドバイスお願いします。

みんなの回答

  • yama06
  • ベストアンサー率61% (101/164)
回答No.1

Content-typeやContent-dispositionを指定することで ダウンロードさせられます。

参考URL:
http://php.eweb-design.com/0303_dl.php
getamato
質問者

お礼

ありがとうございます。 教えていただいたものをこれから試行したいと思います。 行列の表示や○にするようなカスタマイズの方法 でお分かりになる点ありましたらコメントお願いします。

関連するQ&A

  • 画像をDBに保存し、表示させるのは・・・?

    はじめまして。 今、(1)ファイル参照から画像ファイルを選択してDB(MySQL:phpMyAdmin2.10.1)にある フィールド(gazou)へBLOBのバイナリで保存し、 (2)違うぺージでDBに保存してある画像を、検索して表示させたいのですが、 以下のようになってしまい、表示できません。 http://shokuhidiet.web9.jp/a/3.bmp ソースを載せておきます。どうかよろしくお願いいたします。 http://shokuhidiet.web9.jp/a/sos.txt

    • ベストアンサー
    • PHP
  • DBのデータを表示させたい

    こんにちは PHPは今まで他人様の作成したスクリプトをそのまま使用したりちょこっと改造するだけでしたが、 現在必要としているスクリプトが探してもなさそうなので 自分で作成しようと決めて勉強を始めましたが どうしても悩んでいる部分があるのでご教授いただけると助かります。 環境は以下の通りです apache 1.3.37 PHP 5.25 MySQL 5.0 現在の状況なのですが `uid` mediumint(8) NOT NULL auto_increment, `user` varchar(25) NOT NULL, `pass` varchar(32) NOT NULL, `place` varchar(32), `sev` varchar(32), `date` varchar(25) NOT NULL, `regdate` datetime, `gate` varchar(25), `statue` varchar(25), PRIMARY KEY (`uid`), KEY `user` (`user`), KEY `date` (`date`), KEY `gate` (`gate`), KEY `statue` (`statue`) このようなテーブルが作成してありユーザーがフォームから登録したものをDBに保存していき、 1ページに数件分ずつの表示で何ページにもわたって 全件を表示するようなページをです。 フォームからDBへのデータの保存はできるようになりましたが 表示をする際に何件もの表示をするのにどういった手法で行うのがいいのかで悩んでいます。 現在は最新の1件だけ表示されるようなページになっています。 <?php include ("config.php"); $con = mysql_connect($dbhost, $dbuser, $dbpasswd); $selectdb = mysql_select_db($dbname, $con); $sql = "SELECT * FROM testdata ORDER BY regdate DESC"; $rst = mysql_query($sql, $con); $datanum = mysql_num_rows($rst); if ($datanum < 1) { print("データがありません。<br>\n"); print("登録は <a href=\"regist.php\">こちら</a> から"); mysql_close($con); exit; } $data = mysql_fetch_array($rst) ?> <table width="95%" border="0" cellspacing="1"> <tr> <td><table width="100%" border="0"> <tr <td colspan="6">登録情報</td> </tr> <tr> <td width="13%">登録者名</td> <td width="20%"> <?=$data['user']?> </td> <td width="13%">場所</td> <td width="20%"> <?=$data['place']?> </td> <td width="13%">サーバー</td> <td width="20%"> <?=$data['sev']?> </td> </tr> <tr> <td>登録日時</td> <td> <?=$data['regdate']?> </td> <td>日時</td> <td> <?=$data['date']?> </td> <td colspan="2">&nbsp;</td> </tr> </table></td> </tr> <tr> <td><table width="100%" border="0"> <tr> <td colspan="5">状態</td> </tr> <tr> <td width="16%">ゲート</td> <td width="30%"><?=$data['gate']?></td> <td>&nbsp;</td> <td width="16%">statue</td> <td width="30%"><?=$data['statue']?></td> </tr> </table></td> </tr> </table> DBから何件分もの表示をするにはDBのデータを連想配列にするのかなと思っているのですが いまいちどんな手法が良いのかわかりません。よろしければご教授くださいませ。

    • ベストアンサー
    • PHP
  • dbに登録したデータをphpのプルダウンに表したい

    mysqlに登録したデータをphpのプルダウンに表示させたいです。 database [db1] table [unit]カラム group varchar(20) に登録しているグループ名5個を選べるようにしたいのですが知恵を拝借できますでしょうか。 <?php $s=mysql_connect("サーバー名","アカウント","パスワード") or die("失敗しました"); print "接続OK"<BR>; mysql_select_db("db1"); ここから先が知りたいです。 みなさまのお知恵を拝借したいです。 ぜひよろしくお願い致します。

    • ベストアンサー
    • PHP
  • Ajax、PHP、MySQLでDBからデータをWEB上に表示するサイト

    Ajax、PHP、MySQLでDBからデータをWEB上に表示するサイトでDBのデータが変わるとWEBサイトの表示も変わるようにするにはどうすればいいのでしょうか。

    • ベストアンサー
    • AJAX
  • PHPからMySQL・異なるDBにコピー

    PHPからMySQL・異なるDBに接続し同じ構造のテーブルのデータをコピーすることは可能ですか? 以下を実行するとクエリが実行されず「コピーできません」が表示されてしまいます。 どのようにすればコピーできるか教えてください。 $connect1 = mysql_connect("localhost", "user1", "pass1") ; mysql_select_db("db1", $connect1); //db1内にtable1 $connect2 = mysql_connect("localhost", "user2", "pass2") ; mysql_select_db("db2", $connect2); //db2.内にtable2 $sql = "INSERT INTO `db1` . `table1` SELECT * FROM `db2` .`table2`;"; $result = mysql_query($sql, $connect1)or die("コピーできません"); //$result内「$connect1」でも「$connect2」結果は同じです。 //table1とtable2の構造は同じです。

    • ベストアンサー
    • PHP
  • DBデータをcsvで出力の際カンマでエラー

    下記の構文で、mysqlのデータをcsvに出力したいのですが、 カンマ区切りのカンマ部分でエラーになります。 phpかmysqlの設定なのでしょうか? どなたかご教授お願いいたします。 ---以下スクリプト header("Pragma: cache;"); header("Content-type:application/x-csv"); header("Content-Disposition: inline; filename=db_out.csv"); mb_language ('Japanese'); $db = DB::connect($dsn); if(DB::isError($db)){ die($db->getMessage()); } $sql = "select email,adress,date from table "; $result = &$db ->query($sql); if(DB::isError($result)){die($db->getMessage());} while ($record = $result->fetchRow(DB_FETCHMODE_ASSOC)) { $csv_line =&sprintf("%s,%s,%s\n" ,$record['date'] ,$record['email'] ,$record['adress']); print(mb_convert_encoding($csv_line, "SJIS", "EUC-JP")); } $db->disconnect(); --------------ここまで エラー内容 Parse error: syntax error, unexpected ',' 行数を見ると csv_line =&sprintf("%s,%s,%s\n" この行です。 環境は php4.4.4 mysql4.1.21 FreeBSD Apche1.3.37 です。よろしくお願いします。

    • 締切済み
    • PHP
  • PHPのプルダウンメニューにDBのデータを入れたいのですが。

    初めて質問させていただきます。 PHPとMySQLを使って、とあるwebページを作成したいのですが、 DB内のあるテーブルのデータを、PHPの配列に格納し、その内容をプルダウンメニューに反映させたいのです。 データベース内のテーブルの内容(例)は以下のとおり。 テーブル名:sample | 番 | 時 | | 号 | 間 | ------- | 1 | 朝 | | 2 | 昼 | | 3 | 夜 | ------- プルダウンメニューに表示させたい内容は、この場合では「時間」です。  ---- |朝 ▼|   「▼」をクリックすると  ---- ↓  ---- |朝 ▼| |昼   |   このように表示される。 |夜   |   内容はDBから取ってきたもの。  ---- このように表示したいのです。 どなたかPHPに詳しい方、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Web上に表示されたデータをcsvでローカルに落としたい!

    今JavaでWebアプリの開発を行っています。 DBと接続し、データをWeb上に表示させる機能と、 その表示されたものを、csvファイルとしてローカルに保存できるようにしたいのですが、 何かよい方法がありましたら、是非教えてください! データは動的なのでその都度csvファイルの内容も変わってきます。

  • DB検索の結果を項目ごとに別シートにしたい

    識者の方々教えてください。 Excel VBAで、DBに接続し、クエリの結果ごとに別シートにしたいと思っています。 <DBサンプル> 店舗,商品,個数 A店,商品1,10 A店,商品2,10 B店,商品1,10 B店,商品1,10 ・・・ <表示したい内容> Sheet1には、A店のレコードのみを表示させたい。 Sheet2には、B店・・・と、 店舗数は全部で15店舗ぐらいあります。 店舗数ぶんクエリをかけるしかないのでしょうか? もっとシンプルにできると思うのですが、知識不足で、 そのようなノウハウを教えていただけたらと思います。

  • DBから取得した内容を横表示

    質問します。 DBにID,NAME,IMGと言うカラム名があります。 例 ID NAME IMG 0001 PHP1 PHP1 0002 PHP2 PHP2 0003 PHP3 PHP3 データを取得し、ブラウザにて横に表示するように したいのですが、うまくいきません…。 ブラウザーイメージ 0001 0002 0003 PHP1 PHP2 PHP3 画像 画像 画像 以下がサンプルです。 <?php //DB接続 if((!$db = mysql_connect("","",""))){ die; } //DB選択 if((!mysql_select_db(""))){ die; } if(!mysql_query('set names sjis')){ echo "sjis 設定エラー"; die; } $SQL = "SELECT * FROM video_data"; if(!($rs = mysql_query($SQL))){ print mysql_error(); die; } ?> <table border="0"> <TR> <?php $count = 0;      while($item = mysql_fetch_array($rs)){ //ID表示 print "<TD>".$item['ID']."</TD>"; //名前表示 print "<TD>".$item['NAME']."</TD>"; //改行     if($count == 4){       print "</TR>";   $count = 0;     }     //IMG表示 print "<TD><img src='./test/".$item['ID'].".jpg'/></TD>"; $count++; } print "<TR>"; //コネクションクローズ mysql_close(); ?> </TABLE> どこを修正したらいいのかわかりません… 色々やっているんですが…。 わかる方が居たらヒントでもいいので 教えて下さい。よろしくお願いします。

    • ベストアンサー
    • PHP