• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP・MySQL使用で、年齢制限をかける場合の処理について)

PHP・MySQL使用で、年齢制限をかける場合の処理について

このQ&Aのポイント
  • PHP4.3.8、MySQL4.0.16を使用しております。アンケートフォームなどで、次のページに遷移するときにDBの年齢の値を参照して制限をかけるというものを作成しているが、なかなかうまくいかない。男性の10代・20代・30代・40代・50代以上、女性についても同様で、それぞれ100人を越えると制限がかかりアンケート終了となるようにしたい。現在の状況では、17歳と入力した場合に17歳が100カウントされるため、「10代以下」という括りでの制限がどうしてもかけられない。処理方法を教えてほしい。
  • htmlでは下記のコードをincludeして、$limit_overが「1」ならば終了ページに遷移するようにしている。
  • PHP4.3.8、MySQL4.0.16を使用しており、アンケートフォームなどで次のページへの遷移時にDBの年齢の値を参照して制限をかける方法を作成している。男性と女性それぞれの10代、20代、30代、40代、50代以上について100人を超える場合は制限をかける仕組みを実現したい。しかし、現在の状況では17歳と入力した場合に17歳が100カウントされてしまい、「10代以下」の制限がかけられない。どのような処理方法が適切か教えてほしい。

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

  • ベストアンサー
回答No.1

SQLの部分で10代、20代・・・となるようにすればいいのではないでしょうか? 1.((f2) = ".$f2.")をbetweenにする $f2が17なら (f2 between 10 AND 17) (f2 >= 10 AND f2 < 20)でも良い。 2.GROUP BY FLOOR(f2 / 10)とかにしちゃう。 10代、20代・・の区切りにするのであれば、こんな集計にしてしまっても良いかも。 ただ、実際にはWHEREを使っているので、 $sql = "SELECT count(*) FROM table_test WHERE f1 = '{$f1}' AND f2 between 10 AND 20;"; これだけで事足りるんじゃないかと思います。 if文は単純に$log_id_cnt >= 100だけになりますね。

animack
質問者

お礼

書き込みありがとうございます! 四苦八苦してなんとか思ったとおりの処理が出来るようになりました。 SQL部分で年齢を括るという言葉がとてもヒントになりました!

関連するQ&A

専門家に質問してみよう