質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

229閲覧

switch文の中に記述したif文が機能しない

neomana-39

総合スコア11

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/05/07 06:59

前提・実現したいこと

簡単な占いサイトをHTMLPHPを使って練習で制作しています。
占うために必要な情報は生年月日です。

実現したいこと
一年の境を2月4日にして、4日以前に生まれた人、4日以降に生まれた人をグループ1とグループ2の二つに分類したいです。

発生している問題・エラーメッセージ

エラーメッセージは表示されていなのですが、常に2月4日以前生まれの人のグループ1の結果しか表示されない状態です。

該当のソースコード

HTML

html

1<html lang="ja"> 2 3<head> 4 <meta charset="utf-8"> 5 <title>happy.html</title> 6</head> 7 8<body> 9 <form action="index.php" method="post"> 10 11 <h2>Your Birthday!</h2> 12 <p>Year</p> 13 <select name="year"> 14 <option name="born" value="1990">1990</option> 15 <option name="born" value="1991">1991</option> 16 <option name="born" value="1992">1992</option> 17 <option name="born" value="1993">1993</option> 18 </select> 19 20 <select name="month"> 21 <option value="jan">1月</option> 22 <option value="feb">2月</option> 23 <option value="mar">3月</option> 24 <option value="apr">4月</option> 25 <option value="may">5月</option> 26 <option value="jun">6月</option> 27 <option value="jul">7月</option> 28 <option value="aug">8月</option> 29 <option value="sep">9月</option> 30 <option value="oct">10月</option> 31 <option value="nov">11月</option> 32 <option value="dec">12月</option> 33 </select> 34 35 <select name="day"> 36 <option value="1">1日</option> 37 <option value="2">2日</option> 38 <option value="3">3日</option> 39 <option value="4">4日</option> 40 <option value="5">5日</option> 41 <option value="6">6日</option> 42 <option value="7">7日</option> 43 <option value="8">8日</option> 44 <option value="9">9日</option> 45 <option value="10">10日</option> 46 <option value="11">11日</option> 47 <option value="12">12日</option> 48 <option value="13">13日</option> 49 <option value="14">14日</option> 50 <option value="15">15日</option> 51 <option value="16">16日</option> 52 <option value="17">17日</option> 53 <option value="18">18日</option> 54 <option value="19">19日</option> 55 <option value="20">20日</option> 56 <option value="21">21日</option> 57 <option value="22">22日</option> 58 <option value="23">23日</option> 59 <option value="24">24日</option> 60 <option value="25">25日</option> 61 <option value="26">26日</option> 62 <option value="27">27日</option> 63 <option value="28">28日</option> 64 <option value="29">29日</option> 65 <option value="30">30日</option> 66 <option value="31">31日</option> 67 </select> 68 <p></p> 69 <br> 70 <p></p> 71 <p></p> 72 <input type="submit" value="送信"> 73 </form> 74 75</body> 76 77</html>

index.php

<html lang="ja"> <head> <meta charset="utf-8"> <title>hapiena1.php</title> </head> <body> <?php $year = $_POST['year']; $month = $_POST['month']; $day = $_POST['day']; switch ($year) { case '1990': case '1991': if ($month == "feb" || $day < 4){ print "あなたは1990年か1991年の2月4日以前生まれなのでグループ1です。"; } else if ($month == "feb" || $day > 4){ print "あなたは1990年か1991年の2月4日以降生まれなのでグループ2です。"; } break; case '1992': case '1993': if ($month == "feb" || $day < 4){ print "あなたは1992年か1993年の2月4日以前生まれなのでグループ1です。"; } else if ($month == "feb" || $day > 4){ print "あなたは1992年か1993年の2月4日以降生まれなのでグループ2です。"; } break; defualt; print "その他"; break; } ?> </body> </html>

試したこと

switch文のそれぞれのcaseの中で再度$month$dayを定義しました。

まだ初心者で至らぬ点は多々あるかとは思いますが、ご教授いただけたら幸いです。
よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記if文は「$month"feb"のとき」もしくは「$dayの値が4以下のとき」にtrueとなるので、
2月は全てtrue、各月1,2,3日は全てtrueになります。

PHP

1if ($month == "feb" || $day < 4)

投稿2020/05/07 07:09

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

neomana-39

2020/05/07 07:11

ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問