MYSQL8以降ウィンドウ関数対応=>ランキング。

MYSQLでもランキングが使えるようになったとさ。
日本国内のレンタルサーバーは最新の技術というより
一歩遅れた技術で運営している理由はリスクを取らないために
そうしているのだろうなとヒシヒシと感じます。

### support mysql>8.0.2 ウィンドウ関数

```sql
select id,namae, rank() over(order by code_total asc)as code_rank from code_data;
```
### code_data
|id|namae|code_total|
|---|---|---|
|1|kaonashi|15|
|2|mononoke|75|
|3|asitaka|52|
|4|san|87|
|5|theta|99|

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

同一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
*/
--------------

自然結合というものがある、基礎だけど知らない人もいる。

自然結合というものがある、基礎だけど知らない人もいる。
結合するTABLEのフィールド名が同じでなくてはならないので
設計する人に一任されるのでほぼ使うことはないと思います?

select * from demo1 natural join demo2;

-- table demo1
-- id,pass

-- table demo2
-- id,name,tel,email

--idで自動で結合してくれる(自然結合)

 

全ての定義済の変数を配列で返す

全ての定義済の変数を配列で返す関数です。
全てなのでとってきて欲しくないものまでも取ってきます。
なのでそういうのはunsetします。
ちなみに似たようなのでcompactという関数がPHPには存在します。

何に使用する場合に便利かは人それぞれ違いますが
自分の場合はテンプレートエンジンを使用するときに重宝してます。
テンプレートエンジン・・・TwigやSmartyなど

<?php

$a = "abc";
$b = array(1,2,3);
$c = 123;

$vars = get_defined_vars();
unset($_COOKIE);
unset($_POST);
unset($_GET);
unset($_FILES);
unset($GLOBALS);
foreach ($vars as $key => $value) {
    var_dump($key);
    var_dump($value);
}
//...
var_dump($vars);

 

Canvasで円がぐるぐる回る。

<!DOCTYPE html>
<html>
    <head>
    </head>
<body>
    <canvas id="ctx" ></canvas>
    <script>
            "use strict";
            let x = 0,y = 0;
            let xs = 300,ys = 300;
            let xc = 1,yc = 1;
            let ctx = document.querySelector("#ctx");
            let canvas;
            ctx.width = window.screen.width;
            ctx.height = window.screen.height;

            if(ctx.getContext)
            {
               
               canvas = ctx.getContext("2d");
               setInterval(draw,77); 
            }

            function draw(){
               canvas.beginPath();
               canvas.fillStyle = "#3399ff";
               canvas.arc(x,y,35,0,Math.PI*2,true);
               canvas.globalCompositeOperation = "xor";

               canvas.fill();

                x =((Math.sin (xc) * xs)) + 500;
                y =(Math.cos(yc) * ys) + 500;
                console.log(x + ":" + ctx.width);
                console.log(y + ":" + ctx.height);
                if(x < 0 || x > ctx.width)
                {
                   xs*=-1;
                }                
                if(y < 0 || y > ctx.height)
                {
                    ys*=-1;
                }


                if(x<0)
                {
                    x=0;
                }
                if(y<0)
                {
                    y=0;
                }
                if(x > ctx.width)
                {
                    x=ctx.width;
                }
                if( y > ctx.height)
                {
                    y=ctx.height;
                }
                xc+=1
                if(xc>360)
                {
                    xc=0;
                }
                yc+=1
                if(yc>360)
                {
                    yc=0;
                }



            }
            
        </script>    
</body>
</html>

Canvasでぐるぐる円を廻す。
ガラクタコードが少しあります、最初違うコードを書いていたので
これを可変していろいろお試しください。

https://zip358.com/tool/demo5/js/index-3.html

javascriptでEVENT処理レベル1

<!DOCTYPE html>
<html>
    <head>
    </head>
<body>
    <input type="text" class="zyezyezye">
    <script>
            "use strict";
            let zyezyezye = document.querySelector(".zyezyezye");
            zyezyezye.addEventListener("input",()=>{
                console.log(">おいら>>" + zyezyezye.value);
                if(zyezyezye.value=="じぇじぇじぇ")
                {
                    console.log("おいら>>キタ━━━━(゚∀゚)━━━━!!\nおいら>>じぇじぇじぇ\n<<ストーカーかよ!!");
                }
            });
            
        </script>    
</body>
</html>

jqueryばかり書いているとこういう書き方、書かなくなる。
jqueryから世の中はjavascriptやvue.jsなどへシフトしているそうだけど、未だにjqueryばかり書いている自分です。なれないといけないと思いつつ!?
別のことに力を注いでいる毎日です。

ちなみに「じぇじぇじぇ」は方言で驚きを指す言葉だとか。

ネームスペースの利点はこれだと思っている。

ネームスペースの利点はこれだと思っている。
複数人で開発とかしているときに関数名やクラスなどが
かぶってしまう可能性ある、そういうのを
解決してくれるのがネームスペースということです。

<?php
namespace test\demo;

class test{
    function demo():string
    {
        return "demo1\n";
    }
}

namespace test\demo2;
 
class test{
    function demo():string
    {
        return "demo2\n"; 
    }
  }

 

<?php
include_once "./index-6.php";

$demo = new  test\demo\test();
print $demo->demo();
$demo = new  test\demo2\test();
print $demo->demo();