Archives by date

You are browsing the site archives by date.

【MySQL】複数のテーブルをJOINさせる方法。

めも。

極めて文法的なお話。

下記のような名前のテーブルがあるとする。

・table_1
・table_2
・table_3

ほしいカラムは下記とする。

・table_1.col_1
・table_2.col_2
・table_3.col_3

そして。

・「table_1.id」=「table_2」の「table1_id」
・「table_1.hoge_id」=「table_3」の「id」

だったとする。

この場合これらをすべてJOINしようとすると下記のようになる

SELECT t1.col_1, t2.col_2, t3.col_3 FROM table_1 AS t1 LEFT JOIN table_2 AS t2 ON t1.id = t2.table1_id LEFT JOIN table_3 AS t3 ON t1.hoge_id = t3.id

そして、この末端にWHERE、LIMIT、ORDERなどを追加してやればよい。
※この際、複数のテーブル間で同一のカラム名が存在しなかった場合、WHERE句などでテーブル名のプレフィックスを付加してやらなくてもエラーにはならない。っぽい。

【jQuery】要素をおもいっきりガクブルさせる。

面白いプラグインを見つけたのでメモ。

■jrumble
http://jackrugile.com/jrumble/

使い方は簡単。

上記URLから飛んだ先の「Download」よりソースを拝借。

以下のようにjQueryの後に読み込む。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.jrumble.1.3.js"></script>

あとはガクブルさせたい要素に対して以下のようにメソッドをバインドしてやればよい。

// 要素に対してガクブルライブラリをバインドする。
$('#hoge').jrumble();

// ガクブル開始(スタート)
$('#hoge').trigger('startRumble');

// ガクブル終了(ストップ)
$('#hoge').trigger('stopRumble');

.jrumble()に対して引数を渡してやることで、ガクブルを自由自在に操作することが可能。
細かいパラメータやセッティング方法に関しては公式ドキュメントを参照されたし。

 

【CSS】テキストを垂直方向に中央寄せする。

めも。

「height」と「line-height」に同一の値を指定する。

以上。

【CSS】tr要素のdisplayプロパティまとめ。

tableタグ内のtr要素を見せたり隠したりしたかった際に嵌ったのでメモ。

通常DOM要素を見せ隠ししたい場合は、displayプロパティを「none」や「block」にして操作する。

が、trのdisplayプロパティの場合「none」に対をなす値が「block」ではなく「table-row」となる。

ざっくり言うと。

■divとか

display:none / block

■tr

display:none / table-row

となる。

なので以下のようなコードを書くと表示が崩れておかしくなるので注意。

■HTML

<button type="button" class="js_btn">btn</button>

<table class="table">
<thead>
<tr><th>hoge</th><th>fuga</th></tr>
</thead>
<tbody>
<tr class="tr1"><td>ho</td><td>ge</td></tr>
<tr class="tr2"><td>fu</td><td>ga</td></tr>
</tbody>
</table>

■Javascript

<script>
$(function(){
	$('.js_btn').click(function(){
		if($('.tr1').css('display') == 'none'){
			// display:table-rowでなければならない
			$('.tr1').css({'display':'block'});
		}else{
			$('.tr1').hide();
		}
	})
})
</script>

これはボタンをクリックした際に特定のtr要素を調査し、display属性がnoneであればblockに、そうでなければnoneに変更するスクリプトであるが、この場合 において要素を再表示させたいのであれば、5行目を「$(‘.tr1′).css({‘display':’table-row’});」とする必要がある。

 

【windows7】VSTとか使わずにPC単体で音声をバスブーストさせる。

ちょっとやりたかったのでメモ。

1, スタートボタンからコントロールパネルを開く
※右上の表示方法を小さいアイコンにされたし。

6f59467f901926d697b6909d280a160b

2, 「サウンド」をクリック

77bc5c2a3366d71a61b26731c3501c83

3, ブーストさせたいサウンドデバイスを選択し、右下の「プロパティ」を開く

6fbccd35355274d4e94b1cc255ddaab9

4, 開いたウィンドウの中にある「音の明瞭化」をクリックし、「低音ブースト」にチェックを入れる

5, 「音の明瞭化のプロパティ」欄にある設定を押すと、ブーストさせたい周波数帯とプラスするdBが指定できる
※オススメは「75 Hz」を「+9dB」(ヘッドホンでの視聴を想定)

7aae2bca0d3730e920b369f8d80a1543

これが意外と良い感じの増幅感でびっくり。VST-Pluginだったりソフトウェア処理なEQにはあんまり期待してなかったけど、すごく満足しちゃってる感がぱない。まぁピュア方面な宗教的事情が無くかつお気軽に良質な波形操作をしたいのであればこれは強力な一選択肢になるのではないかと。

 

【メモ】CSSとかjQueryとかでよく出てくるeven、odd。単語の話

奇数と偶数って意味なんだけど、毎回どっちがどっちか忘れる。
ということで言い覚え方はないかと調べてみた。

ら。

oddは3文字。3は奇数。よってodd = 奇数
evenは4文字。4は偶数。よってeven = 偶数

え。うそやん。めっちゃおぼえやすいやん。素敵やん。

というちょっと素敵なエピソード。

 

【PHP】try、catch文使い方まとめ。

ていうかめも。自分用。

try {
	// timestampが偶数だった場合例外を投げてみる
	$isEven = false;
	if(time()%2 == 0) $isEven = true;
	if($isEven) throw new Exception('timestamp is even now.');
	
	echo '--------------------'."\n";
	echo 'start try block'."\n";
	echo '--------------------'."\n\n";
	
	echo 'timestamp is odd now.';
	
	echo "\n\n".'--------------------'."\n";
	echo 'end of try block'."\n";
	echo '--------------------'."\n";
	
} catch(Exception $e) {
	echo '--------------------'."\n";
	echo 'start catch block'."\n";
	echo '--------------------'."\n\n";
	
	echo $e->getMessage();
	
	echo "\n\n".'--------------------'."\n";
	echo 'end of catch block'."\n";
	echo '--------------------'."\n";
}

■例外が投げられなかった場合のソース

--------------------
start try block
--------------------

timestamp is odd now.

--------------------
end of try block
--------------------

■例外が投げられた場合のソース

--------------------
start catch block
--------------------

timestamp is even now.

--------------------
end of catch block
--------------------

例外が投げられるとそれ以降のtryブロックの実行は中断されcatch句により補足される。同時にExceptionオブジェクト受け取ることが出来、その例外クラスを用いた処理を記述する事が出来る。というわけ。