• ベストアンサー

CSVデータベース

PHPを使い CSVのデータを表示させる事ができました。 がっ見た目がどうも汚いですよね・・・ もっとすっきりする方法はあるんでしょうか? あとCSVのデータを検索させるようにしたいのですが何かサンプルとかありませんでしょうか? 注文多くて申し訳ないですが、是非ともご教授よろしくお願い致します。 <table width="550" class="table01"> <tr> <td width="32" height="18"><div align="center"><strong>画像</strong></div></td> <th width="123"><strong>情報1</strong></th> <th width="58"><strong>情報2</strong></th> <th width="56"><strong>情報3</strong></th> <th width="53"><strong>情報4</strong></th> <th width="55"><strong>情報5</strong></th> <th width="56"><strong>情報6</strong></th> <th width="81"><strong>対象</strong></th> </tr> <?php $csv = fopen ("./data/new.csv", "r") or die(print "ファイルを開く事が出来ませんでした"); while ($items = fgetcsv ($csv, 1000,",")) { print "<tr>\n"; print "<td height='40' rowspan='2'><img src='$items[0]'/></td>\n"; print "<td><center>$items[1]<center></td>\n"; print "<td>$items[2]</td>\n"; print "<td>$items[3]</td>\n"; print "<td>$items[4]</td>\n"; print "<td>$items[5]</td>\n"; print "<td>$items[6]</td>\n"; print "<td>$items[7]</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td height='16' colspan='7'><div align='left'>$items[8]</div></td>\n"; print "</tr>\n"; } fclose($csv); ?> </table>

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

単純にprint文の羅列がきにいらないのであれば ヒアドキュメントで処理することもできます print<<<eof <tr> <td height='40' rowspan='2'><img src='{$items[0]}'/></td> <td><center>{$items[1]}<center></td> <td>{$items[2]}</td> <td>{$items[3]}</td> <td>{$items[4]}</td> <td>{$items[5]}</td> <td>{$items[6]}</td> <td>{$items[7]}</td> </tr> <tr> <td height='16' colspan='7'><div align='left'>{$items[8]}</div></td> </tr> eof;

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

んー、汚いといっても、これ以上何を、、、 CSVの方に、データの見出し項目もあるのなら、1行分取得したところで何個のデータがあるか見て、その分だけループ回して処理することで見出し部分も含めて一発で処理してしまうということも考えられますがどうでしょう。 「ソースの見た目の綺麗さ」にこだわって、処理の可読性が低くなるのは(個人的趣味でそうするのならともかく)あまりおススメできないですね。 多少冗長でも、どんな処理をしているのかが理解し易い方が、後々メンテもしやすいかと。 ちなみに検索ですが、CSVデータベースなので先頭からしか処理できません。よって、fgetcsvで1行取ったら、その値が検索条件に一致するかどうか判定して、一致したものを配列にドンドンと突っ込んでおいて、読み終わったらその配列を全部出力するのが一番手っ取り早そうです。

すると、全ての回答が全文表示されます。

専門家に質問してみよう