- ベストアンサー
PHPとCSVの表示 もっとスマートにしたい
現在PHPに手を出し始めた初心者です まだ分からない事だらけですが、できれば教えてください CSVファイルからデータを読み込んで表示するということを 苦戦しながらやっております ただ、1つのPHPファイルだけでの表示方法がわからず、今は3つのPHPファイルにしています 目的は大区分を選択後、小区分の一覧が表示され、小区分の1つを選択すると詳細が表示される という感じのものです まずCSVファイル 大区分,小区分,名称,詳細 1,101,hoge1,詳細1 1,102,hoge2,詳細2 2,201,hogex1,詳細x1 2,202,hogex2,詳細x2 3,301,hogexx1,詳細xx1 という感じに分けています で1つ目のhoge0.phpで <a href="hoge1.php?code=1">大区分(1)</a> ・・・ code が 1 なら hoge1.php で 小区分 1 の一覧を表示します 次に2つ目のhoge1.phpで $code = $_GET['code']; $lines = file('hoge.csv'); foreach($lines as $line) { $line = rtrim($line); list($bno,$sno,$name,$detail) = explode(",", $line); if ($bno==$code) { echo "<a href=hoge2.php?type=$sno>詳細</a>".$name."<br>"; } } type が 101 なら hoge2.php で 小区分 101 にある hoge1 項目の詳細を表示します 最後3つ目のhoge2.phpで $type = $_GET['type']; $lines = file('hoge.csv'); foreach($lines as $line) { $line = rtrim($line); list($bno,$sno,$name,$detail) = explode(",", $line);{ if ($no==$type) { echo $name.$detail; } } } 一応これでやりたい事は実現できたのですが、あまりにも不恰好で・・・ これを1つのPHP内で処理できるようにするにはどうしたらいいでしょうか? スマートになるやり方があれば教えてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず1つのファイルにしたいということで 下のように書いてみてはどうでしょうか? if(isset($_GET['code']) == true){ //ここにhoge1.phpの内容を書く } else if(isset($_GET['type']) == true){ //ここにhoge2.phpの内容を書く } else{ //ここにhoge0.phpの内容を書く } issetは調べてもらうとすぐ理解できると思います。
その他の回答 (1)
- RAPTsong
- ベストアンサー率42% (74/175)
$_SESSION に状態を保存して、$SCRIPT_NAME (自分自身) に対してリクエストする。 リクエストの際、$_SESSION を確認して、値が入っているか(isset)を 確認することで、どの分類が選択されたかを確認できます。
お礼
ご返答ありがとうございます $_SESSIONについて調べたのですが、どうもまだ手におえないようでした 探してもログインとかの情報だけで今ひとつ方法がわかりませんでした もっと勉強して$_SESSIONのことについて勉強していきます
お礼
ご変更ありがとうございます issetっていうのは便利ですね 教えていただいた方法で表示することが出来ました たぶんもっとスマートに出来るんでしょうけど、今の私ではこれが精一杯です これからもっと勉強していきたいと思います