2008 年 2月 アーカイブ

addEventListenerの第二引数について

2008-02-28 (木)カテゴリJavascriptタグ

昔は、JavascriptのonLoadは<body>部分に「<body onLoad=”hoge”>」と書くか
Jsファイル内に「window.onload = hoge;」とでもしてあげれば良かった。無名関数って奴?←よく分かってないので指摘求ム。
でも最近だとリスナー登録する形で書くのが主流だから…

Java Script
function errorfunc(){ alert("エラーだとさ"); }
addEventListener('load',errorfunc,false);

もしくは…

Java Script
txt = "エラーだとさ";
addEventListener('load',function(){ alert(txt); },false);

前者の場合は、第二引数に関数名指定。たぶんweb上でよく見るのはこっちか?
後者の場合は、関数名を直接書いてるけど引数書けるから良いかなーと思っていたら以下の記事

addListener()やattachEvent()で引数

まだいろいろあるみたい。もうちょっと調べます。

レスが付いたらスレッドを上に上げるSQL

2008-02-22 (金)カテゴリSQL, 制作タグ

SQLをある程度書けるとPHPやほかのプログラムの書く量が減ると思う。
実際サブクエリーやSQL関数が使えるだけで随分違う。
最近やっとサブクエリの重要さに気づいて取り組んでいる。
とある掲示板システムでのサンプル

レスが付いたらスレッドを上に上げるSQL

SQL
SELECT *,(SELECT MAX(T2.update_time) FROM entry_tbl as T2 WHERE T2.resflg=T1.ID) as uptime FROM entry_tbl as T1 WHERE resflg=0 ORDER BY uptime DESC,T1.update_time DESC

ここでのresflgは本スレの場合、0が立つ。
レスの場合はIDに紐付けするのでresflgには本スレと同じID番号が入る。
上記だけだとレスの表示処理が入っていないので、もっとカスタマイズすれば
レスも合わせて表示出来る処理に出来そう。。実力不足のため4時間ほど粘ったが思いつかず。
MAX関数はそのフィールド内での最大値取得。

今回収穫はORDER BYで複数フィールドが指定出来るという事に気づいた事
今までは1フィールドしか指定してなかったからなぁ…SQL奥深い。。

いつも忘れちゃうので…UNIXタイムスタンプの変換

2008-02-21 (木)カテゴリPHPタグ

自分が忘れっぽいので、ひとまず残しておく。
UNIXタイムスタンプから通常の日付に変換する方法。逆も。

2007-11-11 11:11:11をUNIXタイムスタンプに変換

PHP
$date = "2007-11-11 11:11:11";
echo strtotime($date);

UNIXタイムスタンプをYYYY-MM-DD HH:II:SSの型に変換

PHP
$date = time();
echo date("Y-m-d H:i:s",$date);

簡単な事なんだけどもいつも忘れてしまう。簡単過ぎるから!?(^_^;)
UNIXタイムスタンプにすると時間の比較とか処理するのに楽だから多用しています。
データフィールドをtimestampにして処理処理。

1ヶ月ぶり + PHPリンク変換

2008-02-20 (水)カテゴリPHP, 制作タグ,

随分書いていませんでした;
心身整理などやってたせいであまり日記書けてませんでした。。反省。
>

さて、書いていない間にもcakePHPやらJavascriptなどは進めていたので
これは近々載せていきます。
今日のメモ – PHP – リンク変換プログラム

PHP
function textURLconvert($text){
	$com = ereg_replace("(https?|ftp|news)"."(://:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","\\1\\2",$text);
	$com = ereg_replace("([#-9A-~]+)(@[#-9A-~]+)","\\1\\2",$com);
	$com = nl2br($com);
	$com = ereg_replace("[\n,\r]","",$com);
	return $com;
}

ひとまず上記でhttp://~のURLを自動的にリンクに変換してくれます。
結構使う箇所もあるので。