XREAでMySQL(カウンタ編)

月曜日, 3月 1st, 2004

 先日とりつけたばかりのカウンタだが,トップページにしか取り付けることができないため,ほかのスクリプトを探していた.今回は,珍しい物を見つけたので早速取り付けてみた.
daOnlineCounter(DA実験室)
 このカウンタ(daoc)は,PHPとMySQLで動くカウンタである.詳しくはDA実験室で見てもらいたい.
 今回苦労したのは,まったくさわったことのないMySQLをどう設定するか,である.せっかくXREAでアカウントをとったわけだから,うまく使いたいなとは思っていた.そこで早速挑戦してみた.詳しいやり方は添付のテキストにあったのだが,かなり苦労した.
 まず,Movable Typeをインストールしていたから,MySQLそのものはできあがっていた.しかし,MySQLを操作するためのadminツール(?)である,phpMyAdminがインストールされていなかったため,管理画面からインストールした.
 しばらくすると,管理画面にいけるようになる.管理画面から「データベース」をクリック.すると自分のID(実はこれがデータベース名だが)が表示されるので,それをクリック.ここで自分のデータベースにあるテーブルが一覧できる.
 さて,ここからさらに,「SQL」タブをクリックしてみよう.「データベースにSQL食えリー実行」の画面が出現する.これがまさしく,MySQLコマンドをタイプする画面である.しかも「or テキストファイルの場所」とか書いてあるぞ.
 daocには,daoc.sqlというSQLテンプレートが添付されており,それを使うことで簡単に設定が可能である.さっそく「テキストファイルの場所」でローカルのdaoc.sqlを指定し,実行ボタンを押すと,あっけなくテーブルができてしまった.
 その後,「SQLクエリー実行」のテキストボックスに

insert into daoc_ctrl(name,holdtime) values('NAME',900);

をコピーし(NAMEは任意に変更して),実行ボタンを押せば,もうこれだけでサーバ側の準備は整ったわけである.
 次に,daoc.phpとdacMySQL.phpを設定し,サーバにアップする.ちなはこのときUTF-8にしようとしたのだが,うまくいかなかったのでそのままEUCでアップ.そしてMain Indexテンプレートに,以下の記述を加えた.

<?
require_once('dacMySQL.php');
require_once('daoc.php');
$r = daoc_update( 'top' );
echo '<div>総計 '.$r['total'].' 人</div>';
echo '<div>今日 '.$r['today'].' 人</div>';
echo '<div>昨日 '.$r['yeday'].' 人</div>';
echo '<div>現在 '.$r['persons'].' 人が閲覧中</div>';
?>

 これでアクセスすると,見事に表示された.かなりうれしい瞬間だった.ついでにほかのアーカイブにも貼り付け,サイト全体でカウント可能になった(実はちなさいとでは,バナー部を別のテンプレートとして作り分けたため,変更作業は一回で済んでしまった!).
 ちなみに,人数の変更を行うときは,phpMyAdminの画面で「daoc_ctrl」を選択し,「表示」タブをクリック.すると先ほどつくったカウンタが表示されるので,修正アイコンをクリックしてみよう.あとは「値」を書き換えて実行ボタンを押すだけ.ちなは「total」「today」「yeday」の3つを書き換えてみた.