エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

2014-01-01から1年間の記事一覧

postgreSQL, mySQLで文字列連結とその文字をdate型にキャストする

APIの作成をしていて、 DBから値を取得するときのWHERE句に日付を利用しようとし 渡されるパラメータ $date = '2014-12-22' でもDBのカラムは日付を下記のようにバラバラで持っている CREATE TABLE schema.working_day( factory_working_day_id integer NOT …

マジか... PHPのemptyは int 0 をtrueで返すと...

>|php| if(empty($cnt)){ //処理 } ||< emptyは引数がnull, false, ""(空文字),空の配列のときにtrueを返すと思ってたけど、int 0 とか double 0 とかの要するに数値の0もtrueを返すらしい。 知らんかった!! 危うくバグを作るところでした。。。 詳しく…

smartyでPHPの関数が動かない時

smarty内だと普通にphpの関数って使えたよなと思って {strlen($string)} みたいな書き方をしたら、fatalになったぞ。。。。 サイト探したら、これでいいってサイトもあるんだけどな Smarty strlen - その場しのぎであたふたと Smarty strlen - その場しのぎ…

サクッと簡単 SSHトンネリング

ソースはローカル、DBはリモートみたいな動かし方をしたい場合 ありますよね。 そんな時に使うsshトンネリングはこう書けば良い。 ~/.ssh/configに例えば、こんな感じで記載してあるとして、 -------------------------- Host sshhosturl HostName remorthos…

なんて出来た子よ javascript。エスケープされた(エンティティ参照の?)文字列をデコードして読み取ってくれるなんて

シングルクォートはWEB画面だとHTML表示用にエスケープされた文字列として &quot;みたいになるわけだけど,,, javascriptでjson文字列を読み込むときになんとこれをjavascriptは デコードしてくれて、'(シングルクォート)としてちゃんと読み取ってくれるんだ…

file_get_contensで大きなデータのファイルを取得しちゃダメ

URL指定でなんかのファイルを取得したいときに便利な関数 file_put_contents curlとかよりもラクチンだからついつい使ってしまいがちだけど、 大きなデータのときはまずい なんでかってと、file_put_contentsは一回、メモリに展開するらしいから 非力なマシ…

selectタグの矢印がfirefoxだけ消えない問題を解決する

CSSデザインで、オシャレなプルダウン(selectタグ)を作ろうとすると こんな感じになるはず。。。 >|css| select{ -webkit-appearance:none; -moz-appearance:none; appearance:none; } ||< firefoxでデフォルトの矢印を消すと、 こんな感じに逆三角の矢印マ…

eclipseのデバッガで引数渡して実行する方法

バッチ処理で共通のファイルに引数を渡して実行するプログラムの時に デバッガに引数を渡して実行したい。。 やり方は、こう! Eclipseでコマンドライン引数を与えて実行する方法 | 学習B5デスノート 明快な内容で、改めてメモする必要なし。 ブロガーの方、…

ミソは引数 jqueryクリックイベントで子要素は反応させたくない時のやり方!

jqueryでクリックイベントを使うときに、 セレクタで指定した要素のイベントなら.clickで簡単だけど、 セレクタの子要素のクリックは反応させたくない場合の処理。 ミソはコールバック関数に引数を渡して、クリックした要素を取得して そのタグネームで処理…

なんでよ!? jQuery のajaxでsuccess(たぶん普通だとdone)のコールバックが呼ばれない

ajaxの処理でサーバサイドでは、ちゃんとレンスポンスしてて、 ブラウザのデベロッパツールのnetworkみても、欲しい値が確認できるのに、successの処理に入らない現象が発生。 ※ECCUBEの開発でCUBEさんは未だにjquery1.4使ってる都合で、古い書き方のajax処…

大量のデータをpostしたら一部のデータがサーバ側に渡らない...

PHP

postしてるはずなんだけど、データが途中で切れて、 サーバ側に渡らない現象が発生! たぶん、phpの設定だろうとあたりを付けて調べたところ 答えは、php.iniの max_input_vars の設定値。 この設定値以上の要素数の配列は渡せないらしい。 ちなみにapacheの…

jQueryで小ウインドウから親ウインドウを操作する

答えだけ window.opener.$("親ウインドウのセレクタ").css.....

自作のデプロイツール svnからチェックアウトしてrsyncする

デプロイツールを自作したので、メモまぁ、こんなの作るよりもちゃんとツールを使いこなした方がよいんだけど。 だいたいの開発はPHPなので、こんなツールでいいんだろな PHPのためのCapistrano風デプロイツール「Rocketeer」でLaravelをデプロイする - atij…

知りませんでした postgresで ALTERのADD COLUMNの位置を指定できないらしい

タイトルまんまカラムを追加する方法【PostgreSQL】 - Programming Magicあー、なんと。。。

mysqlでselect文の結果を立てに表示する

msyqlでselet結果のカラムが多すぎで、ターミナルとかテラタームで表示した時に パッと見で分からない場合があります。 そんなときに縦表示する方法 これは絶対覚えとけ!こうやったSQLを SELECT * FROM table;こうする SELECT * FROM table\G だけ。 SQLの…

javascriptで数値を文字列にパースする超楽な方法

答えだけ num = 1; num = num + ''; とね!

スマホ(android,iPhone)の処理を分ける【PHP】

まず、ユーザーエージェントとは何?って人は下記を見てから。 http://www.openspc2.org/userAgent/偽造される可能性が多いになりますが、手っ取り早くデバイスごとに 処理を分けるなら、ユーザーエージェントの判別で良いのではないでしょうか。 書くとこう…

同じテーブルをjoinする方法 〜ECCUBEを参考例に〜

ECCUBEのカテゴリの表示で、プルダウンメニューをoptiongroupで1階層目のカテゴリに まとめたいときにやったこと。なぜこうやったかを詳しく知りたい場合はsmary のhtml_optionsをググってください。 配列をsmarty用にいい感じにしたいからですので。1階層…

mysqlしか使ったことない人へ postgres超入門1

僕はもともとmysqlばっかり使ってたが、案件でポスグレ(postgreSQL)を使うことがありました。 大した話しではないけど、msyqlとの大きな違いを教えますー違い1:スキーマっていう概念 msyqlだとデータベースがあって、その中にテーブルがある という構造だ…

postgresのDB容量、テーブルごとの容量を調べるとき

運用中のDBの容量を知りたいとき、あると思います。 そんな方法DBごとでも、テーブルごとでも流れは同じ調べたい対象のidを調べる → そのidからデータ量を調べる です。ポスグレには、pg_stag_database という統計情報のテーブルがあるようなんで、 それを使…

apacheの実行ユーザで、cronを書くとき

linuxで普通にcronを書くときは、cronの実行ユーザに su でなってからcrontab -eって書くと思うんですが、apacheってそもそもsu - apache ってできない。じゃどうやってapacheユーザのcronを書くの?っていうとこう crontab -u apache -e とまぁそんな感じで…

viで行番号を表示させる方法

結果だけ :set nu

ニフティクラウド(ニフクラ)でMondo Rescueのセットアップ

ニフクラ公式ブログどおりにやっても上手くいかないので、手動でやってみた。一応公式はコチラ http://blog.cloud.nifty.com/177/#content_1_11 まずはバージョンとかの情報を確認するために下記を実行すると yum --enablerepo=rpmforge info mondo下記エラ…

なんだろねー smartyでis_stringんときは何もしなくていのかー

前のポストで smarty で isset(or empty)がエラーになる時のワザ! - ふじたの知見 (プログラム)こんなことを書いたんだけど。is_stringでは、とくに何もなくともエラーが起きない。理由は相変わらず、不明。 まぁ動くからよし!

エンジニア(初級)の皆様 postgresでファイルに書いてあるsqlをガツン!と実行する方法

なんかあるだろうーなーとは思ってたけど知らなかったよ。 ファイルにSQLを書き出しておいて、一括で実行する方法です。 \i [file path] これだけ。 あ、ポスグレにログインしてから実行してね。ちなみにtabも効きます。posgreにログインしないでやる場合は…

jQuery使って、複数チェックボックスを一括でチェック入れる⇔外すの処理

業務系のシステムとかによくある、情報の一覧表示の画面とかでまとめてチェックボックスにチェックを入れたいときの処理(←伝わりにくい...?) <script type="text/javascript"> function BoxCheck(num){ var flg = $('#allCheck:checked').val(); if(flg == 'on'){ flg = true; }else{ flg …

SELECTした結果をそのまんまINSERTできる

これまたよくあるパターンです。 テーブル Aを検索して、集計などなどして、 テーブル Bに結果をINSERTしたい。 ていうケースについて 結論こんな感じです >|sql| INSERT INTO dtb_category_range_count SELECT range_id, count(product_id) AS cnt FROM dtb…

SELECTした結果はそのまんまUPDATEできるよ! 

エンジニアならよくやると思うけど、 テーブルAの検索結果を集計なりなんなりして、 テーブルBに保存するっていうケース UPDATEにFROM句つかってサブクエリやれば、さくっといける SLECT結果をグルグルループしながらアップデートってのもあるけど、 件数多…

smarty で isset(or empty)がエラーになる時のワザ!

結論だけ もしsmartyでissetを使うとエラーになる場合には、|smarty:nodefaultsを付けると上手くいくかも。 {if isset($var)} これを、↓みたいに付ける。 {if isset($var|smarty:nodefaults)} なんで、これで上手くいくかって? それは知らん! emptyは試し…

webデザイナも使いたい!gitbacketとsouceTreeでのソースコード共有

エンジニアならお馴染みのgitでのソースコード共有ですが、 webデザイナにはたぶん馴染みないでしょう。 gitってなに?って人はすまん。こっちをみてください。 http://www.backlog.jp/git-guide/ そんな非エンジニアな人に知ってほしい。 超楽ちんに最新ソ…