同一TABLEを参照しアップデートする。

2019.04.27

Logging

同一TABLEを参照しアップデートする。
これでアップデートできる事を昨日知りました。

UPDATE demo1,(select chk from demo1 where id=1) as demo2 SET
demo = "2" where id = 1 and chk = demo2.chk;
--------------
--------------
/*
同一TABLEを参照しアップデートする。
table demo1
id,chk
1,123
*/
--------------

タグ

, 2, and, as, chk, demo, from, ID, select, set, TABLE, UPDATE, where, アップデート, これ, , 参照, 同一, 昨日,

たった数行のプログラムでドツボにはまる。

2018.04.14

Logging

<?php
$command = "ls -m img";
exec($command,$val,$chk);
//imglist
$imglist = explode(",",implode("",$val));
if(is_array($imglist)){
    foreach ($imglist as $key => $value) {
        $img64[$key] = base64_encode(file_get_contents("img/".trim($value)));
        $path_parts = pathinfo($value);
        $path_parts['extension']=="jpeg"?"jpg":$path_parts['extension'];
?>
<div><a href="./img/<?=trim($value)?>"><?=$value?></a><br><img src="data:image/<?=$path_parts['extension']?>;base64,<?=$img64[$key]?>"></div>
<?php
    }
}
$obj["imglist"] = implode("\n\n",$img64);

ls -m というコマンドをPHPのexecという関数を使用し
画像リストを取得しようとしてどつぼにハマった・・・。
この関数、exec(“ls -m”)と書くと$valの中に配列として返却されるのだが、複数の配列に別れて返却される。なので一度、implodeを使用して一度、文字列に戻す必要がある。そしてカンマ区切りで再度、文字列分離する。

これでほっと一息つくとアウトだ!
配列化した値の前後に空白部分が入っていたり改行コードが入っていたりして画像を参照することが出来ないのだ。そのため、trim関数を使用して取り除く必要がある。

コマンドを使用して画像をリスト化して参照するメリットは何かと言えば数百枚の画像を列挙するときなどに高速で参照化することが出来るのだ。因みにコマンドでファイルの検索を行うという事なので本領発揮すると思います。

是非、お試しあれ。

タグ

-Command, -m, , 39, 64, array, as, base, chk, contents, encode, exec, explode, extension, file, foreach, GET, gt, if, img, imglist, implode, is, jpeg, jpg, key, ls, lt, parts, path, pathinfo, php, quot, trim, val, value, ドツボ, プログラム, 数行,

Functionの引数に初期値を設定するとφ(..)メモメモ。

2015.06.18

Logging

<?php
function memo($gets="メモ",$chk=false){
    if(!$chk)$gets.="った??!";
    return $gets;
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>zip358.com:Fチェック</title>
</head>
<body>
<p><?=memo("テスト",true);?></p>
<p><?=memo("テスト");?></p>
<p><?=memo();?></p>
</body>
</html>

DEMO https://zip358.com/tool/get-p.php
これ、覚えとくと便利な記述です、最初にFunctionの引数に初期値を与えて置けば、引数があるなしで処理を変更することも可能になります。ちょっとした事ですが知っていると知らないとでは差がでます。ちなみにC++でも同じことが出来ます。Javaで同じことが出来るかは未確認です。言語によってできる出来ないとかがあるので、アプリ開発時には注意が必要になります。Javaの場合、同じメソッド名で引数の違うものが作れてしまうのでおそらく、こういう事は出来ないと思います。この頃、知ったことですがVB6やAccessには黄金期があったということを知りました。そういえばVB6を使っていた会社があったなと、いまではVB2005とかにはバージョンアップしていると思います。こういうことを言えば敵をつくりそうですが、昔のほうがコードが見やすかった気がします。いまは、オブジェクト指向を更に良くしようと機能ベタベタ追加しているので、コードがややこしくなってきているように感じます。馬鹿なので人のコードを見るのがかなり、不得意です。
 

タグ

AM, body&gt, C++, chk, DOCTYPE html&gt, function memo, gets, head&gt, html lang, java, meta charset, p&gt, title&gt, utf-8, VB2005, VB6, zip358.com, オブジェクト指向, コード, 初期値, 引数,