SimpleChatの最新つぶやきを別の場所に表示させてみよう。
SimpleChatの記事を見てくださった方よりコメントにて「ブログ(サイト?)のトップページに最新のつぶやきを表示させたい」とご要望をいただきました。
というわけで、ソースをつくってみました。
ちなみに右サイドメニューの「SimpleChat_2の最新つぶやき」と書いてある場所が、それです。(10月8日・削除)
SimpleChat_2につぶやくと、サイドメニューに表示されるテキストが変わります。
では、実装方法をご説明します。
[php]
<?php
//DB接続
$dbname = "★★★/sql/bbs";
$conn = sqlite_open($dbname) or die ("エラー1");
$sql = "SELECT * FROM comment ORDER BY id DESC LIMIT 3;";
$res = sqlite_unbuffered_query($sql,$conn) or die ("エラー2");
while ($row = sqlite_fetch_array($res, SQLITE_ASSOC)){
$message = "<div class=\"box\"><p class=\"date\">" . $row["date"] . "</p><p>" . nl2br(htmlentities($row["message"], ENT_QUOTES, "UTF-8") . "</p>") . "</div>";
print $message;
}
?>
[/php]
★★★には、サイト(ブログ)のトップページからSimpleChatフォルダの中のsqlフォルダまでのパスを相対パスで書いてあげてください。
(WordPressなどを使っていて、かつパーマリンクの設定をいじっていると階層が動的に変わるので相対パスだとエラーが起こります。そんな時はサーバーの最上位階層から絶対パスで書いてあげれば繋がります。/home/sites/heteml/users111………./sql/bbsみたいに)
また、「LIMIT 3」の「3」を変えると、表示されるつぶやきの数が変わります。
上記のソースを、ペコっとはってあげてください。
貼る場所が既に<?php ?>で囲まれたところの中に貼る場合は、上のソースの最初の<?phpと最後の?>を削除してください。
データベースへの階層が間違っている、もしくは文字コードが違うなどの問題がなければ、表示されると思います。
※ちなみに、つぶやきが投稿されたらページを更新しなくても自動的にAjaxでテキストが変わる!」というわけではありません。
Twitterの普及もあり、簡易チャットは需要があるらしく、私のブログもそういったキーワードで検索してこられる方が多いようです。
iphoneアプリの第3弾も出したので、そろそろPHP+Ajaxでしっかりしたサービスをガシガシ作っていこうと思います。