よく考えたら前回の記事では最新状況の一覧は出せたが、検索はできていなかった。
(前回)
FLOW: start -- aaa--bbb--ccc--end
select * from ( select * from log where status = "aaa" OR status = "bbb" OR status = "ccc" order by date desc) as t group by product order by date desc
//all id's recent log
ここからさらに塗装中の個別IDを拾いたいときは、こんな感じ
select * from (select * from ( select * from log order by date desc) as t group by product order by date desc) as t2 where status ="aaa"
//search where recent status is "aaa"
Translate
2016年1月13日水曜日
2016年1月9日土曜日
【mysql】最新状況を検索したい
例えばある製品の製造工程をログにとっているとして、
テーブルは
id product status date
という項目、
開梱→組み立て→塗装→梱包→発送
というフローだとする。
このうち、組み立てから梱包までの作業上にある製品の、最新ステータスを検索したいとき
select * from ( select * from log where status = "組み立て" OR status = "塗装" OR status = "梱包" order by date desc) as t group by product order by date desc
group by で値を拾うときはテーブルの一番上の行を採用するらしいので、
ソートをかけて拾いたい最新のデータを、()内で一番上にもってきている。
テーブルは
id product status date
という項目、
開梱→組み立て→塗装→梱包→発送
というフローだとする。
このうち、組み立てから梱包までの作業上にある製品の、最新ステータスを検索したいとき
select * from ( select * from log where status = "組み立て" OR status = "塗装" OR status = "梱包" order by date desc) as t group by product order by date desc
group by で値を拾うときはテーブルの一番上の行を採用するらしいので、
ソートをかけて拾いたい最新のデータを、()内で一番上にもってきている。
2016年1月8日金曜日
【javascript】簡潔な配列の宣言
var array1 = ["contents1","contents2","contents3","contents4","contents5","contents6"];
var array2 ="contents1,contents2,contents3,contents4,contents5,contents6".split(",");
下のほうが書きやすく、要素が多くなるほど文字数を省ける
var array2 ="contents1,contents2,contents3,contents4,contents5,contents6".split(",");
下のほうが書きやすく、要素が多くなるほど文字数を省ける
2015年12月29日火曜日
PHPの連想配列を表にしたい
$curry['肉'] = ['牛肉','鶏肉','豚肉','ひき肉'];
$curry['野菜'] = ['人参','ジャガイモ','玉ねぎ','ほうれん草','トマト'];
$curry['炭水化物'] =['お米','ナン'];
こんな連想配列を
としたい
$curry['野菜'] = ['人参','ジャガイモ','玉ねぎ','ほうれん草','トマト'];
$curry['炭水化物'] =['お米','ナン'];
こんな連想配列を
具材 | 種類 |
---|---|
肉 | 牛肉 鶏肉 豚肉 ひき肉 |
野菜 | 人参 ジャガイモ 玉ねぎ ほうれん草 トマト |
炭水化物 | お米 ナン |
echo "<table>";
foreach($curry as $key => $value){
echo "<tr><td> $key </td><td>";//ここで得られる$valueは配列
foreach ($value as $key2 => $value2) {
echo $value2." " ;
}
echo "</td></tr>";
}
echo "</table>";
2015年12月14日月曜日
XAMPP環境でPHPからmysqlにmysqldumpコマンドを打つときにはまったこと
データベースの内容をバックアップするボタンを作ろうと、こんなスクリプトを書いた。
$id = "root";
$pwd = "password";
$db = "myDB";
passthru('mysqldump '.$db.' -u '.$id.' -p'.$pwd.' >./tmp/test.sql ');
・・・が、うまく行かない。空のsqlが書き出される。
色々調べた結果、stackoverflowで同じような質問があったので解決
xamppを使用の場合、
passthru('c:\xampp\mysql\bin\mysqldump '.$db.' -u '.$id.' -p'.$pwd.' >./tmp/test.sql ');
とすればよい。ローカルのインストールしたパスを参照させないといけない。
同様に、バックアップから復帰させるときは
passthru('c:\xampp\mysql\bin\mysql '.$db.' -u"'.$id.'" -p"'.$pwd.'" <./tmp/test.sql ');
とする。
$id = "root";
$pwd = "password";
$db = "myDB";
passthru('mysqldump '.$db.' -u '.$id.' -p'.$pwd.' >./tmp/test.sql ');
・・・が、うまく行かない。空のsqlが書き出される。
色々調べた結果、stackoverflowで同じような質問があったので解決
xamppを使用の場合、
passthru('c:\xampp\mysql\bin\mysqldump '.$db.' -u '.$id.' -p'.$pwd.' >./tmp/test.sql ');
とすればよい。ローカルのインストールしたパスを参照させないといけない。
同様に、バックアップから復帰させるときは
passthru('c:\xampp\mysql\bin\mysql '.$db.' -u"'.$id.'" -p"'.$pwd.'" <./tmp/test.sql ');
とする。
2015年3月11日水曜日
JINS花粉カット眼鏡の重さ
花粉症には辛い季節になりました。
仕事柄、眠くなるタイプの薬は飲まないようにしているのですが、
目が痒いですね。とても痒い。プログラミングどころじゃないっての。
早く世の中にまさかりダイエットが流行って、一日一本ずつ杉の木を伐採する人がでてくるといいなと思います。
いつか来るその日のための繋ぎとして、花粉症対策眼鏡を買ってみました。
花粉をカットしてくれるかどうかは、よくわかりませんが・・・
これは重い!普段使っている眼鏡よりずっと重い!
そういえば、小学生くらいの時につけていた眼鏡はこれくらいの重さだったなぁ・・・と思いながら、
試しに重さを測ってみました。
両方とも、同じ度付きの眼鏡です。
普段使いの眼鏡(owndays)
JINS 花粉CUTパーフェクトフィットタイプ
大体、三倍くらい重さが違うんですねー。
花粉のカットももちろん大事なんですが、かけていて耳が痛くなるのは評価できませんなー
仕事柄、眠くなるタイプの薬は飲まないようにしているのですが、
目が痒いですね。とても痒い。プログラミングどころじゃないっての。
早く世の中にまさかりダイエットが流行って、一日一本ずつ杉の木を伐採する人がでてくるといいなと思います。
いつか来るその日のための繋ぎとして、花粉症対策眼鏡を買ってみました。
花粉をカットしてくれるかどうかは、よくわかりませんが・・・
これは重い!普段使っている眼鏡よりずっと重い!
そういえば、小学生くらいの時につけていた眼鏡はこれくらいの重さだったなぁ・・・と思いながら、
試しに重さを測ってみました。
両方とも、同じ度付きの眼鏡です。
JINS 花粉CUTパーフェクトフィットタイプ
大体、三倍くらい重さが違うんですねー。
花粉のカットももちろん大事なんですが、かけていて耳が痛くなるのは評価できませんなー
ラベル:
ゲーム作成してない日
2015年3月1日日曜日
monaca内でのcanvas全画面処理と画像の表示方法
Monacaは一つのコードでandroidやappleのアプリを同時に作れるのがメリットですが、
端末によってディスプレイのサイズが違うのが難しいところです。
tableタグなどでレイアウト調整すればいい場合もありますが、
今回苦戦したのがcanvasで大きな一枚絵を表示するケースです。
メインのマップを表示する際、後で色々なエフェクトを足したかったので
canvasを使う方法を選んだのですが、
まず、canvasを全画面にするのに一苦労。
こちらのページを参考にしました。
var main = document.getElementById("main");
mainhtml='<div id="wrapper" style=" width: 100%; height: 100%; position: fixed;">';
mainhtml+='<canvas id= "world" onclick="coordinate()"></canvas>';
mainhtml+='</div>';
main.innerHTML =mainhtml;
$(function () {
sizing();
$(window).resize(function() {
sizing();
});
});
function sizing(){
$("#world").attr({height:$("#wrapper").height()});
$("#world").attr({width:$("#wrapper").width()});
}
これで、画面いっぱいに表示されました。
ところが、ipadのような端末のシミュレーターだと、縦横比が異なるため、
mapの見え方が変わってきてしまいます。
画像のほうが横長のときはcanvas内で縮めて表示するようにしました。
(画像の表示については、他の記事を見てください。)
if(img.width/canvaswidth> img.height/canvasheight)//横長の比率がcanvasのほうがきついとき
{
縦を少し縮めて表示
ctx.drawImage(img,0,0,img.width , img.height*(img.width/canvaswidth)/(img.height/canvasheight),0,0, canvaswidth, canvasheight);
}
else
{
//通常通り表示
ctx.drawImage(img,0,0,img.width , img.height,0,0, canvaswidth, canvasheight);
}
うまくいきました。下の開いたスペースには、後で飾りを入れてごまかしましょう。
端末によってディスプレイのサイズが違うのが難しいところです。
色々な端末があります・・・
tableタグなどでレイアウト調整すればいい場合もありますが、
今回苦戦したのがcanvasで大きな一枚絵を表示するケースです。
メインのマップを表示する際、後で色々なエフェクトを足したかったので
canvasを使う方法を選んだのですが、
まず、canvasを全画面にするのに一苦労。
こちらのページを参考にしました。
var main = document.getElementById("main");
mainhtml='<div id="wrapper" style=" width: 100%; height: 100%; position: fixed;">';
mainhtml+='<canvas id= "world" onclick="coordinate()"></canvas>';
mainhtml+='</div>';
main.innerHTML =mainhtml;
$(function () {
sizing();
$(window).resize(function() {
sizing();
});
});
function sizing(){
$("#world").attr({height:$("#wrapper").height()});
$("#world").attr({width:$("#wrapper").width()});
}
これで、画面いっぱいに表示されました。
全画面表示成功
ところが、ipadのような端末のシミュレーターだと、縦横比が異なるため、
mapの見え方が変わってきてしまいます。
間延びした格好に
というわけで、画像の縦横比とcanvasの縦横比を比べて、画像のほうが横長のときはcanvas内で縮めて表示するようにしました。
(画像の表示については、他の記事を見てください。)
if(img.width/canvaswidth> img.height/canvasheight)//横長の比率がcanvasのほうがきついとき
{
縦を少し縮めて表示
ctx.drawImage(img,0,0,img.width , img.height*(img.width/canvaswidth)/(img.height/canvasheight),0,0, canvaswidth, canvasheight);
}
else
{
//通常通り表示
ctx.drawImage(img,0,0,img.width , img.height,0,0, canvaswidth, canvasheight);
}
うまくいきました。下の開いたスペースには、後で飾りを入れてごまかしましょう。
登録:
投稿 (Atom)