- ベストアンサー
CSV形式のデータをダウンロードする際に項目名を1行目に表示したい方法について
- データベースからCSV形式のファイルをダウンロードする際、項目名を1行目に表示する方法についてアドバイスをお願いします。
- 現在の実装では項目名が行単位で表示されてしまいます。他の方法を教えていただけると助かります。
- 解決策をご教示いただければと思います。お忙しい中、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと意図がわからないのですが・・・ そもそも while($row = mysql_fetch_array($res, MYSQL_ASSOC)){ $str = $row["id"].",".$row["mail"].",".$row["pass"].","; $str .= ・・・ } としたら$strは毎回上書きされるので最終行しか拾えなくないですか? 逆にヘッダの挿入だけなら $str = "ID,E-Mail,password,氏名,郵便番号,都道府県,住所,TEL,FAX,URL\n"; while($row = mysql_fetch_array($res, MYSQL_ASSOC)){ $str .= $row["id"].",".$row["mail"].",".$row["pass"].","; $str .= ・・・ } 的な処理で十分じゃないですか? もしくはヘッダは$headerにいれといて、出力の際に、$headerと $strを出力するとかもありかと
その他の回答 (1)
- 1108435
- ベストアンサー率43% (94/217)
何故にプログラムでわざわざCSV化しているのかがちょっと判りませんが、この質問のソースからして一行目に行として項目名が列挙されるのはある意味当然ですよね。だってわざわざ$strに行を代入しているわけですから。それともこの行の中にあるカンマが表示されないということなのですか? 最も簡単なのはコマンドで一発出力だと思いますけど違うの?
お礼
1108435様 早々のアドバイスをありがとうございます。 こちらからのご挨拶が遅れて申し訳ありません。 CSV化する目的はファイルとして保存させたいと依頼があってのことでした。 いずれにせよ、上手く行くことが出来ました。ありがとうございました。
お礼
yambejp様 お世話になっております。早々のアドバイスをありがとうございます。 (こちらからのご挨拶が遅れて申し訳ありません) >としたら$strは毎回上書きされるので最終行しか拾えなくないですか? 確かに言われてみればそうなのですが、上書きされずに正常にデータ順に出力しています。 while($row = mysql_fetch_array($res, MYSQL_ASSOC)){ $str .= $row["id"].",".$row["mail"].",".$row["pass"].","; $str .= ・・・ } とやってみると、イメージ的に 1 1 2 1 2 3 1 2 3 4 といった感じになってしまします。 いずれにせよ、 >もしくはヘッダは$headerにいれといて、出力の際に、$headerと >$strを出力するとかもありかと こちらのやり方で上手く行きました。ありがとうございました!