プロが教える店舗&オフィスのセキュリティ対策術

以下「占いサイトを作ろう」をまねしてサイト作成中ですが、
項目3のところでつまずきました。
http://dcs-nagoya.com/php/170/

1、MySQL と2、html 作成まではできたのですが、
3、生年月日を受け取るrcv_post.phpを作成。がどうしてもできません。

ネットで調べてPHPスクリプトをつくって何度も試しましたが、
全く上手くいきません。MySQLのエラーが表示されます。

検索結果に 日を足して(60超ならマイナスする)計算まで設定したいのですが、
どなたかご教授お願い致します。

●1、2はサイトの記載どおり、ロリポップを使用
●PHPはバージョン5.2

A 回答 (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の値が入っていると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/05/08 00:07

No.1です。



まず、エラーになっているのは、MySQLのエラーではなく、
PHPのスクリプトの文法エラーです。
21行目を確認してください。
#行末に「;」がないとか。。。

SQLですが
貼っていただいたURLの画像から推測すると
SELECT 月 FROM テーブル名 WHERE year = "選択された年"

例えば、2000年1月なら
SELECT 1 FROM テーブル名 WHERE year = "2000"

のようになると思います。

この回答への補足

苦戦すること数日、なんとか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")にしてから表示したいのですが、どのような方法があるでしょうか?



完成まであと一歩です。
おかげさまで、作成するのが楽しくなってきました。

よろしくお願いします。

補足日時:2011/04/30 01:51
    • good
    • 0

まず、MySQLのエラー文はどのようなものが出ているのですか?



MySQLにログインできていますか?
また、ログインできているのであれば、
スクリプトに書いてあるSQLが正しいか確認してください。
#phpAdmin等でSQLの確認はできると思います。

この回答への補足

ご丁寧なご指摘ありがとうございます。

●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 …


■また、抽出した数字に日にちを足して計算する方法もわかりません。
「受け取った生年月日をもとにMySQLからSELEECT文を使い数字を抽出します。
その数字と日にちを足します。」の部分です。


全くの素人なのでいろいろお伺いしてすみません。
よろしくお願いします。

補足日時:2011/04/25 20:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!