MySQLなどで、たまにDBの構造上、2つのIDでin(複数)検索したい時がある。
ちから技でand検索などするのもいや場合があるので、そいいう時は、concatで連結して、in検索!
select * from where concat(A_ID,'-',B_ID) in(a_id-b_id)
ただ分かりづらくなる可能性もあるので、ご注意を。
MySQLなどで、たまにDBの構造上、2つのIDでin(複数)検索したい時がある。
ちから技でand検索などするのもいや場合があるので、そいいう時は、concatで連結して、in検索!
select * from where concat(A_ID,'-',B_ID) in(a_id-b_id)
ただ分かりづらくなる可能性もあるので、ご注意を。
twitterのAPIを利用する時によく使うxmlでの取得対策用にメモ。
PHPでこんな感じでかいてます。
<?php try{ $xml = simplexml_load_file($url); if(!$xml){ throw new Exception("XMLを取得できせん"); } }catch(Exception $e){ echo $e->getMessage(); } ?>
今まで知らなかったのですが、
linuxのサーバー間コピーができるscpコマンドが、
実はcpコマンドの代わりになるようです。。
すごw
scp /tmp/test.log /tmp/test_cp.log
cakephp1.3を利用していて、指定の画面だけに、特定のCSSやjavascriptを利用したい場合がある。
便利なようにcakephpでは、下記方法で指定が可能でした。
# app/view/hoge.ctp echo $html->script('jsfile', array('inline' => false)); echo $html->css('cssfile', null, array('inline' => false));
ただ条件として、app/webroot/layout/default.ctpなどで、
予め、
<head> <? echo $scripts_for_layout; ?> </head>
となっている必要があります。
またインラインでjs,CSSを利用したい場合は、普通に下記のように設定すればOK!
Viewはこんな感じ
#app/view/hoge.ctp <?php echo $javascript->link('jsfile'); ?>
コントローラは↓
#app/controllers/hoges_controller.php var $helpers = array('Javascript');
${"var"} = "123";
PHPの可変変数を使えば、変数名をいじって利用できる、特にループ処理などに有効活用できる。
foreach($device as $key => $val){ $RESULT_ = "result".$key; //可変変数名 echo $RESULT_; print_r(${$RESULT_}); }
$result1 $result2 $result3 ・・・・
の配列が1つのループで出せます。
一応メモ!
$form->year("Info.DAILY_YMD",2009,2016,null,null,false)."年";
と利用していた場合は、最後の引数が利用できなくなっていたので、下記のように配列で最後の引数で指定できる。
$form->year("Info.DAILY_YMD",2009,2016,"now-1 day",array('empty' => false))."年";
上記同様に$form->dayも同じノリで変更しないと動きませんでした。
echo $this->renderElement("indextest");
↓ elementに!
echo $this->element("indextest");
他にも色々でてきそうですが、取り急ぎ変わった点をメモ。
「^M」の入力がわからなかったのでメモ。
vimで開いたファイルを、下記コマンドで置換するのだが、
:%s/^M//
入力方法を間違えると、うまく置換できないので、
Controlキー+v Controlキー+mで「^M」と入力できます。
app/config/database.php に
var $second_db = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'usertest', 'password' => '******', 'database' => 'testdb2', );
のように追記し、対象のモデルで、
$useDbConfig = 'second_db';
とすれば指定していできます。
※デフォルトではdatabase.phpの$defaultが呼ばれるようです。
http://blog.syuhari.jp/archives/142
上記サイトを参考にさせていただきました。
ありがとうございます!
Linuxのターミナルで、たまにCSVファイルの行数がおおすぎて、エクセルで開けないケースがる、ちょっと前のエクセルで、65536までしかダメったかな?
そんな場合は下記コマンドで分割
下記は50000行毎に分割する例。
実行すると、xaa xab ・・・などいうファイル名で分割ファイルが作られます。
# split -l 50000 file_20110826.csv
C++でアセンブラを触る際非常に高速軽量化に必要なビット操作、
それ利用した、ビット操作によるフラグの扱いを下記にメモします。
変数の各ビットを、フラグとして使用する。
char cflag = 0; → 0000_0000 → フラグ8つ
8ビット ビット(2進数の表記)
で8ケタ。0か1か、
が8つ扱える。
サンプル
0 0 0 0_0 0 0 0
未使用 ③ ② ①
①生死を扱う ②性別を扱う ③無敵かどうか
※0ビット目・・・1なら生、0なら死
1ビット目・・・0なら男、1なら女
2ビット目・・・0なら通常、1なら無敵
| 1にする | 0にする | 調べる
0ビット目 | |1 | &(~1) | &1が0でなければ
(生死) | | |
1ビット目 | |(1<<1) |&(~(1<<1))| &(1<<1)が、0でなければ
(性別) | | |
2ビット目 | |(1<<2) |&(~(1<<2))| &(1<<2)が、0でなければ
(無敵) | | |
//———–インクルード————————–
#include <stdio.h> //基本的な入出力のヘッダファイル
#include <stdlib.h> //itoa()などに必要なヘッダファイル
//――――――メイン関数―――――――――――――――――――――――――――――――――――――――――
void main()
{
char cflag = 0; // (2進数では 0000_0000)
//―――――0ビット目を調べる――――――――――――――――――――――――――――
if(cflag & 1) //cflagの0ビット目(生死)だけを調べる。
{
printf(“0ビット目は1。生きているn”); //0ビット目が0でない(1)なら、生存
}else
{
printf(“0ビット目は0.死んでいるn”); //1ビット目が1でない(0)なら、死んでいる
}
cflag = cflag | 1; //0ビット目を1にする
printf(“0ビット目を1にする。死んでいた場合、生きかえるn”);
//生きているか死んでいるかもう一度表示
if(cflag & 1) //cflagの0ビット目(生死)だけを調べる。
{
printf(“0ビット目は1。生きているn”); //0ビット目が0でない(1)なら、生存
}else
{
printf(“0ビット目は0.死んでいるn”); //1ビット目が1でない(0)なら、死んでいる
}
cflag = cflag & (~1); //0ビット目を0にする。
printf(“0ビット目を0にする。生きていた場合、死亡するn”);
if(cflag & 1) //cflagの0ビット目(生死)だけを調べる。
{
printf(“0ビット目は1。生きているn”); //0ビット目が0でない(1)なら、生存
}else
{
printf(“0ビット目は0.死んでいるn”); //1ビット目が1でない(0)なら、死んでいる
}
}
練習問題
1、性別や、無敵かどうか、なども、サンプルと同じように確認せよ。
//———–インクルード————————–
#include <stdio.h> //基本的な入出力のヘッダファイル
#include <stdlib.h> //itoa()などに必要なヘッダファイル
//――――――メイン関数―――――――――――――――――――――――――――――――――――――――――
void main()
{
char cflag = 127; // (2進数では 0000_0000)
char Moji[33]; //文字列を扱うchar型配列を宣言
itoa(cflag,Moji,2); //cflagを2進数にしてMojiに代入
printf(“cflag = %sn”,Moji); //cflagを2進数にした値を表示
//cflagの0ビット目を調べる
if(cflag & 1) //cflagの0ビット目(生死)だけを調べる。
{
printf(“0ビット目は1。生きているn”); //0ビット目が0でない(1)なら、生存
}else
{
printf(“0ビット目は0.死んでいるn”); //0ビット目が1でない(0)なら、死んでいる
}
//cflagの1ビット目を調べる
if(cflag & (1<<1)) //cflagの1ビット目(性別)だけを調べる
{
printf(“1ビット目は1。男n”); //1ビット目は0でない(1)なら、男
}else
{
printf(“1ビット目は0.女n”); //1ビット目は1でない(0)なら、女
}
//cflagの2ビット目を調べる
if(cflag & (1<<2)) //cflagの2ビット目(無敵かどうか)だけを調べる
{
printf(“2ビット目は1。無敵n”); //2ビット目は0でない(1)なら、無敵
}else
{
printf(“2ビット目は0。無敵じゃないn”); //2ビット目は1でない(0)なら、無敵じゃない
}
}