- ベストアンサー
PHPをつかったアプリ作成の初歩的な質問です
PHPを使用して、診断テストのようなものを作成することになりました。質問は15問ほどで、YES・NOで回答して、3~4つくらい質問にこたえて、10パターンの結果にいきつくものなのですが、PHP初心者で、まったくどのように作っていけばいいのかがわかりません。if文を使用する、とかヒント的なことでもなんでも、どうか教えてください!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
作り方は人それぞれですので、可能性だけで言ったらキリがありません。 どういった入力形式のアンケートなのか?どういった画面遷移方法を取るのか? 設計によっては全く異なるプログラムになります。 どういったものを作りたいか?の情報が足りません。 また、PHPのバージョンによって挙動も異なりますので、 その情報も必要になります。 if()を使う、場合があります。 switch()を使う、場合があります。 include()、require()を使う、場合があります。 rand()を使う、場合があります。 session関係を使う、場合があります。 cookie関係を使う、場合があります。
その他の回答 (3)
- inferu_noz
- ベストアンサー率26% (23/86)
今日通勤中暇だったので考えてみました。 あまり書いてしまうと、考える楽しみがなくなってしまうので。 連想配列とかではなく、とてもシンプルな方法です。 図にして番号をふってみると、すごろく形式だと1の次が2か3、2の次が4か5、3の次が6か7になります。 基本はこの繰り返しです。 難しく考える事はありません。 2の質問から、次の質問に行く時どういう情報があればいいでしょうか? また、どこの画面でその情報を埋め込めばいいのでしょうか? それをPHP側で認識できればいいのです。 あとは、テキストファイルを開く、ループ、条件に合った行を抜き出し、条件分岐、の繰り返しです。 そして、最後のゴールページ。 htmlで、hiddenタグがわかれば、一通りできるかな。 あくまで、参考です。 もちろん、他のスクリプトの書き方もできると思います。 千差万別です。 まぁ、一般人のアドバイスで、参考程度で。^^;
- tako_yaki
- ベストアンサー率0% (0/1)
仕事でも趣味でもプログラムを書くときにはキチンと設計をすることをお勧めします。 インターネットで検索すると小難しい設計方法の話が沢山ありますが、最初はそこまでしなくても大丈夫です。 まず、画面遷移から書いてみればどうでしょうか。 ホームページのイメージを漫画で書きます。 問題の出方、回答の仕方、ボタンの配置、イメージを絵にします。 これがまず画面遷移に繋がります。 画面遷移が出来ると、次は処理を考えます。 質問に答えて答えがどうであれば、どうなるのか。 正誤判定で画面が変わるなら正解の時の画面と不正解の時の画面を両方書いて矢印を引きます。 もしそれによって、ユーザーに何かを伝えるならメッセージなど加筆し紙の上で何が起こるかイメージをどんどん組み立てて行きましょう。 何をしたときに何がどうなるかさえはっきりすれば、あとは「条件分岐ならif文を使う」などとプログラムの構造も見えやすくなります。 回答に対して点数が必要、点数の合計で画面を変えるとか、診断テストと言っても色々あると思いますので、画面遷移に必要なものをどんどん書き込んでいけば、どういう変数が必要かとか色々見えてくると思います。 設計せずに作ると、後でとんでもない落とし穴が待ってて最初から書き直しになったり、無理やり矛盾を修正する処理を書かないといけなくなってとてもメンテナンスしにくいものになったりしますので、難しく考えずまず紙に向かって(エクセルとかでもいいですが^^)何を作りたいのかを考えることをお勧めします。 作った後に機能を強化しようと思ったときにもその時にどう思って作ったかがわかってメンテナンスが楽になりますよ。 その内設計の手順も見えてきますし、本格的に設計を学ぶのはそれからでも十分だと思います。 頑張ってください。
お礼
ありがとうございます。 ほんとうになにもわかっていない状態だと再確認しています。 tako_yakiさんの回答を拝見させていただくと、 プログラムをする際の流れがとてもわかりやすく参考になります。 本を見ながら、流れに沿ってやっていこうと思います。
- inferu_noz
- ベストアンサー率26% (23/86)
昔、そんなのを作ったのですが、どうやって作ったかを忘れてしまいました。 私は、似たようなサンプルを探して、どういう挙動で動いているのか?を調べました。 Perl,PHPは、ソースをみれるので、いろいろなスクリプトを参考にしました。 やはり、アンケートの形式と結果によると思います。 雑誌によくついている、双六のような性格占いを作るのなら、1問目、2問目、・・・の回答で、質問を選択しないといけないし。 これは質問のデータ構造が少し面倒かも。 いや、簡単にもできるけど、そうなるとifの分岐が面倒かも。 また、質問にポイントがついていて、O型ポイントが一番多いので、「あなたはO型ですね。」ってことも考えられます。 これは、ポイント処理だけなので、質問も結果も簡単。 おそらくはcookieを利用した方がいいですが、携帯とかにも対応させたいのなら、テキストファイルに保存とかかなー。 Getでも、できるが・・・、こちらは面倒かな。 とりあえずは、初心者本を、あと2,3冊読んだ方がいいですよ。 自宅サーバでない場合を除いて、サーバはそこを使っている人たちの共有財産ですので、。 とりあえず、自分の環境でPHPを動かせるようにして、がんばってください。
補足
ありがとうございます。 作りたいのは、双六のような性格占いのようなものです。 回答から結果への流れの部分は、まだどのようにするのか 決まっていないようですので、それ以外で進められる 部分をすすめていきたいのです。 やはりまだまだ初心者本を読んで勉強だと痛感しています。 ありがとうございます。
補足
「あなたは顔が長いですか?」→「YES」or「NO」 上記のように質問に対して、クリックで選択するという感じで、 質問は全部で15問程度用意されます。 3~4問ほど回答したら、診断結果にたどり着くようなプログラム をつくりたいのです。かなりの初心者で、 遷移方法というものも、わかりませんでした。すみません。 バージョンはPHP5です。