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

会員登録画面で、中学1年生、中学2年生
といった学年を登録した後に、
1年経過した際には、自動的に学年を繰り上げる
スクリプトを作りたいのですが、
どうすればいいのかわかりません。

■作りたいイメージ
cronを使い、mysqlに保存した「学年」のデータを呼び出して、
毎年4月1日に、学年を中学1年から中学2年に変更する、
といったものです。

■わからない部分
・会員登録してある全ての情報を、
while($row = mysql_fetch_array($res)){
を使って呼び出して、全てを更新する方法
・毎年4月1日に変更するための記述方法

大変お手数をお掛けしますが、よろしくお願いします。

A 回答 (2件)

こんにちわ。



私もsaintandreさんと同じ意見ではありますが、便宜上、どうしても学年を保持しておきたい場合などは、ひとりひとりのデータを取り出して更新していくのではなくて、SQLのUPDATEで一発更新できると思います:

e.g. studentsテーブルの学年フィールドgradeにintとして学年が入っている場合、

UPDATE students
SET grade = grade + 1

ただし、上記だと中学3年生まで「4年生」と更新されてしまうのでこれがイヤな場合はあらかじめ中学3年生を退避しておくなどの措置が必要です。

また、crontabに関しては、参考URIを載せておきますが、こちらも年に一度の重要な更新を自動化するのはちょっと勇気がいるかもしれません。。
# このような業務だと、結局、確認作業とかが発生すると思うので、マニュアル更新で良いのでは、と思います。

参考URL:http://www.linux.or.jp/JM/html/cron/man5/crontab …
    • good
    • 0
この回答へのお礼

ご丁寧なご回答ありがとうございます。

アドバイスを頂いたとおり、
マニュアルでの作業を考えてみます。

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

お礼日時:2008/08/14 18:31

「学年」を記録するのでは毎年の更新が必要になります。

留年の可能性が無いのならば「入学した年」を記録してそれと現在の日付の差分から間接的に学年を求める方法をお勧めします。なぜなら「入学した年」は一度入力すれば変更されないからです。

同様に「年齢」はデータベースに記録するべきではありません。「生年月日」を記録しましょう。
    • good
    • 0
この回答へのお礼

なるほど...。
よくわかりました。
ありがとうございます!

お礼日時:2008/08/14 18:30

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