postgres+phpで携帯への情報提供
|
●なぜ携帯で情報提供する時代なのか 高校改革が進む中、単位制高等学校や定時制の三部制が増えてきている。そのような学校の場合、 LHR等で一斉に指導できる機会が減って、生徒への連絡が取りにくという問題が発生する可能性が 十分に考えられる。現在、ほとんどの高校生が携帯電話を所有する中で、学校の時間割・行事予定・緊急情報に iモードでアクセスできる環境を構築し、情報を提供することが必要なのではないのかと思います。 実際、定時制高校では、時間割や行事予定等を電話で問い合わせる生徒も多い。iモードの通信料は、 1kバイトあたり2〜3円程度と、電話代金を考えれば、負担とはならないはずである。 Webに情報を直接書き込んでアップするのが一般的であるが、選択制が増えている中で、生徒個々が 違う時間割で授業を受ける場合が多くなっている。そこで、時間割データのデータベースを利用すれば、 個々に対応した時間割も簡単に提供できる。そこで、今回は実際にPostgreSQl7.1+php4を使iモードアクセス 画面を作成しました ![]() ![]() ![]() ●簡単に作成の方法を DBMSとして、Linux上で多く使われているPostgresSQL7.1を使っています。海外では、MySQLの方が多い ようですが、日本ではPostgresSQlの方が人気があるようです。時間割データ用のデータベースとテーブルを作成 します。これは、どうしてもLinuxサーバーでコマンドをたたかなければいけません。テーブルの作成で、データ型 をしっかり指定してあれば、クライアントWindowsマシンにPostgresSQL ODBC ドライバーをインストールすれば、 簡単にMicrosoft Accessから直接データを入力できます。Excel→Access→Postgresと行けば、時間割データを 簡単にDBMSに組み込めます。Postgresの文字コードは、EUCを使いますが、これも問題なく変換してくれます。 DBMSとのインターフェース言語ですが、いろいろありますが、相性からもPHP言語が使いやすくそれを利用しました。 携帯で使ってみても特に早さの点でも問題なく動作します。このシステムを使って自分の予定も携帯から見られるよ うにしています。 ●ソース 1.アクセス画面(index.html) <HTML> <HEAD> <meta http-equiv="content-type" content="text/html; charset=sift-jis"> </head> <body$gt; <a href="jikanwari.php?codo=11">M1</A> クラス名M1をクリックした時にクラスコード番号11でデータベースにアクセスする。 以下、クラス名とコードを繰り返す。 ・ ・ ・ ・ ・ </body> </html> 2.時間割表示画面(jikanwari.php) 拡張子は、phpにします。 <HTML> <HEAD> <meta http-equiv="content-type" content="text/html; charset=shift-jis"> </head> <body$gt; <? $conn = pg_Connect("localhost", "", "" , "" , "jikanwari"); 一般的にデータベースに接続する構文です。「jikanwari」は、このデータベースの名前です。 if (!$conn) { echo "データベースにアクセスできませんでした!\n"; exit; } $sql = "select * from jikan where codo = $codo"; クラスの時間割を抽出SQL文です。「jikan」は、データのテーブル名です。 $result = pg_Exec($conn, $sql); if (!$result) { echo "データベースにアクセスできませんでした!\n"; exit; } $class = pg_result($result,0,1); print("\"$class\"時間割 "); print文は、Webで文字を表示したいときに使います。 $i=0; $k=2; $t=7; 一般的な変数に値を代入しています。 print("/|"); print("月|"); print("火|"); print("水|"); print("木|"); print("金"); print("<br$gt;"); 曜日の表示ですが、携帯の表示を横8文字押さえるのと罫線を使わないために「|」を使っています。 for ($i=1;$i < 5;$i++){ print("$i"); for ($j=0;$j < 5;$j++){ $str=i18n_convert("$str","SJIS","EUC-JP"); $str = pg_result($result,0,$k); print("|$str"); $k=$k+1; } print(" "); print("_"); for ($j=0;$j < 5;$j++){ $str = pg_result($result,0,$t); $str=i18n_convert("$str","SJIS","EUC-JP"); 時間割を取得するわけですが、一般的に携帯Webは、文字コードがs-jis表示に限られて います。そのため、postgresからは、eucコードでデータが送られるために、ここでs-jisに変換しています。 print("|$str"); $t=$t+1; } クラスの時間割を1文字ずつ取得し表示をしています。 $k=$k+5; $t=$t+5; print("<br>"); } pg_FreeResult($result); pg_Close($conn); 最後にデータベースから接続を切断します。 ?> </body> </html> 青文字は、簡単な解説です。この2つのファイルを作成すれば簡単に携帯にも表示できます。 もっと、効率の良い組み方があると思いますが・・・。iモード、jskyについては、問題なく 表示されます。Auも、一般的には大丈夫のようですが、本格的には、HDMLとちょっと違った タグで作成司したほ良いようです。 |
HOMEへ | データベーストップへ | ネット事件・話題へ | WORMのアタックログへ | 単位制高校DBへ |