• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでCSVデーターの表示について)

PHPでCSVデータの表示方法とは?

このQ&Aのポイント
  • PHPでCSVデータの表示方法を教えてください。一覧表示ではなく、テキストをクリックして特定のデータを表示させたいです。
  • CSVデータの中身は一郎,男,20歳 / 二郎,男,22歳 / 一子,女,24歳 / 二子,女,26歳です。
  • 01.phpでは一覧表示されていますが、一郎のデータのみを表示するようにしたいです。初心者なので、どなたか教えていただけないでしょうか?

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

  • ベストアンサー
  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.1

データの数が増えるたびにphpファイルが増えるのは大変なので、 data.phpにクエリー判定をつけて表示を変える機能をつけてみてはいかがでしょうか。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>無題</title> </head> <body> <?php $script = 'data.php'; $csvFile = 'CSV.csv'; $tempCSV = file_get_contents($csvFile); $tempCSV = mb_convert_encoding($tempCSV,'utf-8','SJIS-win'); $fp = tmpfile(); fwrite($fp,$tempCSV); rewind($fp); setlocale(LC_ALL,'ja_JP.UTF-8'); function h($string) { return htmlspecialchars($string, ENT_QUOTES); } // 条件分岐でクエリーdata=が1以上の数値が入っていたら処理を変える if($_GET['data'] > 0){ $i=1; while ($arr = fgetcsv($fp,1024)) { list ($name,$sex,$age) = $arr; if($i == $_GET['data']){ print <<< DOC_END <table border="1"> <tr> <td>名前</td> <td>{$name}</td> </tr> <tr> <td>性別</td> <td>{$sex}</td> </tr> <tr> <td>年齢</td> <td>{$age}</td> </tr> </table> DOC_END; break; } $i++; } } else{ // それ以外のときは全データのリンクリストを表示 echo "<ol>\n"; $i=1; while ($arr = fgetcsv($fp,1024)) { list ($name,$sex,$age) = $arr; print <<< DOC_END <li><a href="{$script}?data={$i}">{$name}</a></li> DOC_END; $i++; } echo "</ol>\n"; } fclose($fp); ?> </body> </html>

tinpu
質問者

お礼

出来ました!! kuzumiHKさん超、ありがとうございます。 一歩先に進む事ができました。 $script = 'data.php';というやり方ははじめて聞きました。 PHPを勉強し始めたばかりでわからない事だらけです。 この後は、画像の扱い方やアップロードについてやりたいと思っています。 ご迷惑かもしれませんがまた分らない事があった時は宜しくお願いします。 (自分勝手ですが、)