multipleなSELECTタグで選択されているOPTIONタグの個数をjQueryで得る
複数選択可能なSELECTで選択されている個数をjQueryでどうやって書くのか知りたかったからググった。
How to get number of selected options using jquery?
https://stackoverflow.com/questions/3707812/how-to-get-number-of-selected-options-using-jquery
var count = $("#mySelect :selected").length;
やってみた。動いた。よかった。
MySQLでJOINとINNER JOINって同じ?
JOINとINNER JOINが同じっぽいけど本当に同じか不安だから調べた。
https://dev.mysql.com/doc/refman/5.6/ja/join.html
MySQL では、JOIN、CROSS JOIN、および INNER JOIN は構文上同等です (互いに置き換えることができます)。標準 SQL では、それらは同等ではありません。
CROSS JOINって使ったことない。まあいいか。
とりあえずMySQLでJOINとINNER JOINは同じ。よかった。
Twigで配列の一部を取り出す
Twigで配列の一部を取り出すときは、sliceを使えばオケ。
でも配列のキーがつぶれた。
マニュアル見た。
https://twig.symfony.com/doc/2.x/filters/slice.html
The slice filter works as the array_slice PHP function for arrays and mb_substr for strings with a fallback to substr.
英語読めないけど、PHPのarray_sliceと同じって書いてある気がする。
http://php.net/manual/ja/function.array-slice.php
第4引数がいい感じっぽい。
preserve_keys array_slice() はデフォルトで配列の数値キーを並べなおし、 リセットすることに注意してください。 preserve_keys を TRUE にする事でこの動作を変更することができます。
つまりTwigだと第3引数だねってことで、第3引数にtrueって書くとつぶれなくなった。
こんな感じで使ったよ。
{% for key,value in items|slice(0, limit, true) %}
JavaScriptの関数のデフォルト引数はIEで動かない
てきとうなJavaScriptを書いたらIEで動かなかった。つうかJavaScriptが動かなくなった。
function aiueo(kakiku = false) {
関数のデフォルト引数はIE等で動かないらしい。
あわてて修正。
function aiueo(kakiku) { if(typeof kakiku === 'undefined') kakiku = false;
うまくいったっぽい。
TwigでPHPの===
てきとうにif文書いたら、空でもゼロでも通ってしまった。
{% if value == '0' %}
何も考えずに==を===してみたら、シンタックスエラーになった。
ちゃんと調べた。 https://twig.symfony.com/doc/1.x/tests/sameas.html
This is the equivalent to === in PHP
よさそうですな。
{% if value is same as('0') %}
いい感じに動いてくれた。
TwigでPHPのin_array
PHPのin_arrayは
if (in_array($val, $array))
Twigでこんな感じ。
if val in array
https://twig.symfony.com/doc/1.x/templates.html#containment-operator
FuelPHPのクエリビルダのSQLを確認したい
FuelPHPのクエリビルダで複雑なクエリを書いていて、 本当に思った通りに書けてるの?と心配になったらSQLを表示して確認する。
$query = DB::select()->from('table'); print $query->compile(); // SELECT * FROM `table`
printとか書きたくないって時は、 以下のようにしてFuelPHPのログファイルに出力させて確認する。
Log::debug($query->compile());
ログに出てないんですけど?って場合はconfig.phpのlog_thresholdの設定がイケてないんだと思います。 何にも考えなければエラーで出しちゃえ。
Log::error($query->compile());
普通の画面だったら、プロファイリングを使うのも手。 config/development/config.phpのprofilingをtrueにして、
'profiling' => true,
config/development/db.phpにも足す。
<?php return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=localhost;dbname=test', 'username' => 'root', 'password' => '', ), 'profiling' => true, ), );
画面右端に現れた黒い「Code Profiler」をクリックするとプロファイリングが表示されるので、 「Database」のタブをクリックするとSQLが確認できる。