Archives by date

You are browsing the site archives by date.

【MySQL】JOINの際、各テーブルに対して別名をつける方法。

今更過ぎるけれどもわからなかったので調べた。

例えば以下のような感じ。
※ここではhogeテーブルとfugaテーブルがあるとする

SELECT h.id, h.name, f.email FROM hoge AS h LEFT JOIN fuga AS f ON h.fuga_id = f.id;

このようにテーブル名のあとに続けて「AS [エイリアス名]」と定義してやることで、それ以外の句ではそのエイリアス名を使用することが出来る。
SELECT句でテーブル名を一々フルで記述しなくてもよくなるので非常に便利。

 

【jQuery】セレクト要素内オプションのテキストを取得する方法。

選択されたオプションの値ではなく、表示されている文字列(テキスト)を取得する方法。

例えば以下のようなセレクト要素があると仮定する。

<select class="select">
<option value="1">hoge</option>
<option value="2">piyo</option>
<option value="3">fuga</option>
</select>

この時、「1, 2, 3」という値ではなく、「hoge, piyo, fuga」といったテキストが欲しい場合、下記のようなセレクタで取得することが出来る。

<script>
$(function(){
	// セレクトボックスの値が変更された際に実行
	$('.select').change(function(){
		var text = $(this).children('option:selected').text();
		console.log(text);
	})
})
</script>

「:selected」を指定してやるところがポイント。

 

【HTML】disabled属性のついたinput要素は値がポストされない。

嵌ったのでメモ。

inputで要素を生成する際にdisabled属性を指定するとブラウザ側が操作をできないようにしてくれるが、単に値の変更が出来ないだけだと思っていたら大間違いだった。
disabled属性をつけたselect要素の値をjQueryにて書き換え、その値をポストさせようとしていたところ、どうもバリデーションに引っかかる。
徐にPOST値をダンプしてみたところどうもブラウザが値を送信していない模様だったので、試しにdisabledをはずしてみたら普通に受け取ることが出来た。

まぁ普通に考えればその挙動は正しい。フォームを無効にしているのだから値がポストされてはセキュリティ的にマズイ場合も当然あるだろう。
ということで今回は原因が判明し別のアプローチをとることができたのでスッキリ。
今後同じミスで時間を浪費しないためにも今回の件を忘れないようメモっておく。

 

【MySQL】DBのDumpファイルをターミナルからインポートする方法。

PhpMyAdminでダンプファイルを生成したはいいものの、インポートする際にsqlファイルのアップロード容量制限にひっかかってしまうので、どうにかこうにか流し込む方法はないかと調べてみた。

1, まずは手に入れたダンプファイル(.sql)を任意のディレクトリに置く

2, 次にターミナルを起動。su権限でログインしたら、ダンプファイルが置いてある階層まで移動する

3, 最後に下記コマンドを実行

mysql -u [ユーザー名] -p [テーブル名] < [ダンプファイル名]  

例。

mysql -u root -p hoge < dump.sql

この方法であれば何十メガだろうが何百メガだろうが数ギガバイトだろうがSQLを流し込むことが出来る(はず)。
しかもブラウザからインポートするよりも圧倒的に高速なので激オススメ。