• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPとMYSQLを使用してサイト作成~初心者用)

PHPとMYSQLを使用してサイト作成~初心者用

このQ&Aのポイント
  • 占いサイトの作成に挑戦していますが、3の生年月日を受け取るスクリプトがうまく作成できません。
  • 検索結果に日を足して計算する機能を追加したいのですが、うまくいきません。
  • サイトはロリポップを使用しており、PHPのバージョンは5.2です。

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

  • ベストアンサー
  • diszo
  • ベストアンサー率78% (32/41)
回答No.3

参考になればと思いますが。。。 SQLを以下のようにして、処理をしたらいかがでしょうか? #ただし、フォームの日付を$dayに格納しておきます。 $res_result = mysql_query("SELECT (`$month` + $day) as result from animal where year = $year"); //問い合わせ結果を表示。 while($dat=mysql_fetch_array($res_result,MYSQL_ASSOC)){ $result = $dat["result"]; } mysql_free_result($res_result); ご質問の値の抽出ですが、 まず、SELECT文のところを少しいじって、欲しい値をresultというキーで取得するように しています。( as result の部分ですね) そして、問い合わせの結果を表示部分で、連想配列に入っている値を取得しています。 これで欲しい値が手に入ります。また、SELECT文の中で日付の加算もしています。 #$resultには、70の値が入っていると思います。

nekonyan38
質問者

お礼

長々とつきあってくださりありがとうございました。 おかげさまでうまくいきました。

その他の回答 (2)

  • diszo
  • ベストアンサー率78% (32/41)
回答No.2

No.1です。 まず、エラーになっているのは、MySQLのエラーではなく、 PHPのスクリプトの文法エラーです。 21行目を確認してください。 #行末に「;」がないとか。。。 SQLですが 貼っていただいたURLの画像から推測すると SELECT 月 FROM テーブル名 WHERE year = "選択された年" 例えば、2000年1月なら SELECT 1 FROM テーブル名 WHERE year = "2000" のようになると思います。

nekonyan38
質問者

補足

苦戦すること数日、なんとかDB検索、表示することができました。 上記、SELECT の説明、とても役に立ちました。ありがとうございます! まだ問題があるのですが、相談にのっていただけますか? ■抽出したデータを数字のみ表示(取得)したいのですが、以下のように表示されます。 (下の例の場合、"53" 以外は不要です) ------------------------------------------------------------------------------ ※実際ブラウザに表示される内容→ array(1) { [0]=> string(2) "53" } ----------------------------------------------------------------------------- ※PHPで書いている文↓ $res_result = mysql_query("SELECT `$month` from animal where year = $year"); //問い合わせ結果を表示。 while( $row = mysql_fetch_array( $res_result, MYSQL_NUM ) ){ var_dump( $row ); ----------------------------------------------------------------------------- ※$monthと$yearには、それぞれフォームで受け取った値を入れています。 ■取得した後この数字を使って計算をします。 取得した数字(例"53")に日にち(例"17"※これもフォームで値を送信します)を足した数("70")にしてから表示したいのですが、どのような方法があるでしょうか? 完成まであと一歩です。 おかげさまで、作成するのが楽しくなってきました。 よろしくお願いします。

  • diszo
  • ベストアンサー率78% (32/41)
回答No.1

まず、MySQLのエラー文はどのようなものが出ているのですか? MySQLにログインできていますか? また、ログインできているのであれば、 スクリプトに書いてあるSQLが正しいか確認してください。 #phpAdmin等でSQLの確認はできると思います。

nekonyan38
質問者

補足

ご丁寧なご指摘ありがとうございます。 ●MySQLのエラー文は以下のものです。 Parse error: syntax error, unexpected T_VARIABLE in~on line 29 どう考えても、記入しているSQL文があやしいです。 ■データベースの抽出(SQL文)記載方法がわかりません。 http://dcs-nagoya.com/php/170/  にあるように、年+月の条件で検索される数字を抽出したいのですが、 SELECT文でどのような指定をしたらいいのでしょうか? 実際のphpの文を教えていただけると助かります。 (表はこのサイトに記載があるものとまったく同じものです↓) http://dcs-nagoya.com/wp-content/uploads/2009/10/data2.jpg ■また、抽出した数字に日にちを足して計算する方法もわかりません。 「受け取った生年月日をもとにMySQLからSELEECT文を使い数字を抽出します。 その数字と日にちを足します。」の部分です。 全くの素人なのでいろいろお伺いしてすみません。 よろしくお願いします。