วันพุธที่ 30 มีนาคม พ.ศ. 2565

สิทธิ์การรักษา Mbase

CASE

WHEN b.INSCL in (03,04) AND uc.HOSPMAIN ='10953' THEN CONCAT(m.INSCL_NAME,'-ในเขต') 

WHEN b.INSCL in (03,04) AND uc.HOSPMAIN !='10953' THEN CONCAT(m.INSCL_NAME,'-นอกเขต') 

ELSE m.INSCL_NAME 

END as 'inscl' ,  

 LEFT JOIN authen_kiosk ak ON p.CID=ak.cid AND ak.claimtype='PG0060001' AND date(b.REG_DATETIME)=date(ak.d_update)

วันอังคารที่ 29 มีนาคม พ.ศ. 2565

การใช้งาน uuid mysql

การนำ GUID มาใช้ประโยชน์ในการเป็น Key (VB.Net, C# , SQL Server , PHP) สำหรับ GUID เป็น Globally Unique Identifier โดยปกติแล้วมันจะเป็นการอ้างถึงชุดของข้อความที่ได้จาก Computer และ Software ของเครื่องที่ติดตั้งและใช้งาน เช่น Registry จะมีการอางถึง GUID กับ Application ID ที่ติดตั้ง ซึ่ง GUID ที่ได้จะแตกต่างกันไปในแต่ล่ะเครื่อง ซึ่งด้วยเหตุผลนี้เองเมื่อ GUID ถูกใช้งานที่เครื่องใดเครื่องหนึ่ง ณ เวลาใด เวลาหนึ่ง ชุดของข้อความจาก GUID จะมีค่าที่แตกต่างกันไปทุกครั้ง และปัจจุบัน คำสั่งที่ใช้สำหรับการสร้าง GUID สามารถเรียกใช้จากโปรแกรมภาษาต่าง ๆ เช่น VB.Net , C# หรือแม้กระทั่งบน SQL Server Database ก็มีคำสั่งที่สามารถดึงค่า GUID ออกมาได้เช่นเดียวกัน

ตัวอย่าง GUID

21EC2020-3AEA-4069-A2DD-08002B30309D

SQL = SELECT uuid,cid ,uuid

FROM cid_vaccinate WHERE cid = 334140044xxxx

ตัวอย่าง uuid  genarator
SELECT UUID();










 

วันจันทร์ที่ 28 มีนาคม พ.ศ. 2565

Sql คำนวนแยก ปี เดือน วัน สำหรับโปรแกรม mBase

 TIMESTAMPDIFF(year,p.birthdate,CURDATE()) as year,

timestampdiff(month,p.birthdate,curdate())-(timestampdiff(year,p.birthdate,curdate())*12) as count_month,

timestampdiff(day,date_add(p.birthdate,interval (timestampdiff(month,p.birthdate,curdate())) month),curdate()) as count_day,

วันอาทิตย์ที่ 20 มีนาคม พ.ศ. 2565

theme Admin Dashboard สวยๆๆ

 1. Tabler ตัวนี้สวยดี สร้างด้วย Bootstrap 4 มีหน้าเว็บ Demo ให้เลือกใช้เยอะเลย และคู่มือละเอียดดีมาก

รายละเอียด: https://tabler.github.io/
demo: http://bit.ly/2kX7OTX

.
2. Sing App Lite สร้างด้วย Bootstrap 4 เหมือนกัน แต่อาจไม่ได้มีเยอะเท่ากับตัวแรก

รายละเอียด: http://bit.ly/2JnLXQm
demo: http://bit.ly/2M4tfiv

.

วันศุกร์ที่ 18 มีนาคม พ.ศ. 2565

photoshop Tips

***ทำขอบภาพเบลอ https://www.youtube.com/watch?v=ZlipkXBy_qI
***ปรับขนาดภาพที่ใหญ่ https://www.youtube.com/watch?v=iFmAHxrPbAY
*** แแทรกภาพ https://www.youtube.com/watch?v=iFmAHxrPbAY
***ฟอนต์ https://www.f0nt.com/
***ติดตั้งฟอนต์ http://www.siamebook.com/lbro/en/photoshop-cs6-tips/7208-install-thai-font-photoshop-cs6.html
***ฟอนต์สวยๆ 2021 https://www.octopus.co.th/blogs/how-to/essential-thai-font-2021
***ฟอนต์ google thai https://fonts.google.com/?subset=thai
***เทคนิคทำตัวหนังสือให้เด่น สวย https://www.youtube.com/watch?v=EybddwZ5_ec
https://www.youtube.com/watch?v=sa0HJjaMcT4
***Style Download ***https://www.youtube.com/watch?v=tgU7G_PaP0w

***ย้อนกลับหลาย ๆ ครั้ง   Ctrl+ Alt +z   *******
**สอนเขียนโปรแกรม https://www.youant.net/%e0%b9%82%e0%b8%9b%e0%b8%a3%e0%b9%81%e0%b8%81%e0%b8%a3%e0%b8%a1%e0%b8%aa%e0%b8%b3%e0%b9%80%e0%b8%a3%e0%b9%87%e0%b8%88%e0%b8%a3%e0%b8%b9%e0%b8%9b%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%9a%e0%b8%a3%e0%b8%b4/

1. Extract the file downloaded to PHOTOSHOP --> PRE-SETS --> STYLES

2. Load the styles from the styles palette





วันอังคารที่ 15 มีนาคม พ.ศ. 2565

การทำ Replicattion Master-Slave

 การทำ Replicate MySQL

MySQL เป็นฐานข้อมูลที่ได้รับความนิยมอย่างมากในปัจจุบัน อาจทำงานได้ดี มีเสถียรภาพ มีขนาดเล็ก ติดตั้งง่าย หาเอกสารอ้างอิงง่าย อีกทั้งยังถูกจับคู่กับ PHP ชนิดที่เรียกกันว่า ซี้ปึ๊ก กันเลยทีเดียว หมายถึงคำสั่งต่างๆ ของ PHP จะมีสามารถเรียกใช้ความสามารถของ MySQL ได้อย่างเด็มประสิทธิภาพทีเดียว ยิ่งหากได้ใช้ phpmyadmin อีกยิ่งเข้ากันเป็นปี่เป็นขลุ่ย แถมหาก Run อยู่บน Apache อีก โอ้ว เข้าแก๊ง แต่ยังขาดหัวหน้าแก๊งไปได้ไม่ได้ นั่นคือ Linux โอ อย่างนี้ต้องเรียกว่า มาเป็นทีม อาจเรียกได้ว่าเป็น Dream Team หรือทีมในฝันของนักพัฒนาเว็บแอพพลิเคชั่นเลยทีเดียว ซึ่งทีมนี้มีชื่อเล่น ว่า LAMP (Linux, Apache MySQL, PHP)

MySQL สามารถทำงานได้ทั้งระบบปฏิบัติการ Windows, Linux, Solaris, FreeBSD ทั้งแบบ 32 และ 64 Bit ซึ่งปัจจุบันที่กำลังเขียนอยู่นี้ Version 5.1.20 Beta Replicate MySQL ล่ะคืออะไร เกี่ยวข้องกันอย่างไร ? หลายท่านรู้จักการ Backup ข้อมูล หากท่านรู้จักการทำ Mirror Disk นั่นแหละ ความหมายเดียวกัน ?

ฐานข้อมูลนั้นมีความสำคัญอย่างยิ่ง เนื่องจากเว็บแอพลิเคชั่นนั้นใช้ฐานข้อมูลเก็บข้อมูลทุกสิ่งทุก ๆ อย่าง ฐานข้อมูลก็ไม่ได้ถูกโหลดเข้า Memory ได้ทั้งหมด ก็ยังคงต้องใช้ Disk ซึ่งเจ้า Disk นี่แหละ ที่ชอบสร้างปัญหาให้กับระบบงานอยู่บ่อยครั้ง หากข้อมูลที่สำคัญ เช่น ข้อมูลด้านการเงิน ข้อมูลการขายหน้าร้าน เกิดเรียกใช้งานไม่ได้ หรือหายไป ย่อมเกิดความเสียหายให้กับหน่วยงาน เป็นอย่างมาก จะดีไหมหากเรามีข้อมูลสำรองไว้ยัง Disk อีกก้อน หรือ Server อีกตัว เพื่อเป็นการลดความเสี่ยงสำหรับการสูญเสียข้อมูล เพราะฉะนั้น เรามาลองทำ Replicate MySQL กัน สิ่งที่ท่านต้องมีการ

  1. เครื่องคอมพิวเตอร์จำนวน 2 เครื่อง หรือมากกว่า เครื่องแรกเรียกว่า Master เครื่องถัดไปเรียกว่า Slave.
  2. ทั้ง 2 เครื่องลง Program MySQL โดยที่สามารถ Download ได้ที่ http://dev.mysql.com/downloads/mysql/5.1.html
ภาพรวมของการทำ Replicate MySQL

ภาพที่ 1 ภาพรวมของการทำ Replicate MySQL

ขั้นตอนที่ 1.

หากต้องการ Replicate Master ที่มีข้อมูลอยู่แล้ว จะต้อง Dump ข้อมูลออกมาเพื่อทำให้ Slave มีข้อมูลที่เท่าเทียมกันเสียก่อน

ขั้นตอนที่ 2.

สร้าง User ขึ้นมาเพื่อทำหน้าที่สำหรับทำหน้าที่ Replicate เท่านั้นในฝั่ง Master โดยใช้คำสั่ง
ฝั่ง Master เข้าไปแก้ไขไฟล์ my.ini ที่ C:Program FilesMySQLMySQL Server 5.1>my.ini โดยเพิ่มด้านล้างหัวข้อ [mysqld] ดังนี้

#
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
# ??????????-

โดยที่ :

log-bin=mysql-bin # Binary Log
server-id=1 # ลำดับ Server master กำหนด =1
innodb_flush_log_at_trx_commit=1 #สำหรับผู้ใช้ฐานข้อมูลที่เป็น InnoDB จำเ็ป็นจะต้องให้ Master
#commit งานให้เรียบร้อยก่อน ถึงจะทำการ Replicate ไปให้ Slave
sync_binlog=1 # ทำการ Sync Log สำหรับ InnoDB และหากเกิด Master Crash จะไม่ทำให้ Slave Sync ข้อมูลซ้ำ ในกรณีที่ Master ฟื้นกลับมาอีกครั้ง
ขั้นตอนที่ 4.

ฝั่ง Slave ให้เข้าไปแก้ไขไฟล์ my.ini ที่ C:Program FilesMySQLMySQL Server 5.1>my.ini เช่นเดียวกับฝั่ง Master โดยเพิ่มด้านล้างหัวข้อ [mysqld] ดังนี้

#
server-id=2
master-host=192.168.0.10
master-port=3306
master-user=repl
master-password-slavepass
master-connect-retry=30
replicate-wild-do-table= %.%
report-host=192.168.0.20
#

โดยที่
server-id=2 # ลำดับ Slave หากมี Slave มากกว่า 1 ตัวสามารถกำหนด Server-id ได้จนถึง (2 ยกกำลัง 32) -1 เครื่อง
master-host=192.168.0.10 # หมายเลข IP เครื่อง Master
master-port=3306 # กำหนด Port
master-user=repl # ชื่อ User สำหรับการ Replicate
master-password-slavepass # Password
master-connect-retry=30 # หากติดต่อ Master ไ่ม่ได้ จะติดต่อซ้ำภายใน
replicate-wild-do-table= %.% #กำหนดฐานข้อมูลที่ต้องการ Replicate %.% หมายถึง Database ทุกตัว

ขั้นตอนที่ 5.

เมื่อ Master และ Slave มีข้อมูลเท่ากันแล้ว ดังในขั้นตอนที่ 1 ให้สร้างจุด Check Point เพื่อให้เป็นจุดเริ่มต้นสำหรับการ Replicate โดยใช้คำสั่ง

	mysql> FLUSH TABLES WITH READ LOCK;
ให้เรียกดูสถานะการทำงาน เพื่อดู Binary Log name และ Offset ของ Master ดังนี้
************************************************

> mysql -u root -p

> flush logs; เพื่อให้ mysql สร้าง log สุดท้ายขึ้นมา

> show master status; เพื่อดู mysql-bin.000xxx ล่าสุด

> purge binary logs to ‘mysql-bin.000xx’; ชื่อไฟล์ล่าสุด

เมื่อทำการ flush ที่เครือง master เสร็จเรียบร้อยแล้ว เช็คที่เครื่อง Slave หาก Error LOG Replicate ให้ทำการ login เข้าระบบและใช้คำสั่งที่เครื่อง Slave

> mysql -u root -p

> show slave status\G;  ตรวจสอบ Error Log Relay

> stop slave; ทำการปิดระบบ replicate ข้อมูล

> reset slave; รีเซ็ตการดึง mysql-bin.000xxx จาก master ใหม่

> change master to master_log_file=’mysql-bin.00xxx’, master_log_pos=;  นำ master_log_file และ master_log_pos ล่าุสดจากเครื่อง master มาใส่

> start slave; เพื่อทำการเปิดระบบ replicate ข้อมูล

วันพุธที่ 9 มีนาคม พ.ศ. 2565

Nas326

 IP:192.168.xxx.32  Nas326 (Backup)1TB

admin::::#####################1234###########################

User Account:::pgans:::####################12345678###############################


วันอังคารที่ 8 มีนาคม พ.ศ. 2565

การใช้งาน IF ELASE

 if(SUBSTR(a.PEXAM, LOCATE('level', a.PEXAM),5) = 'level',SUBSTR(a.PEXAM, LOCATE('level', a.PEXAM), 9),SUBSTR(a.PEXAM, LOCATE('(ระดับ', a.PEXAM), 9)) as level,

วันพุธที่ 2 มีนาคม พ.ศ. 2565

Yii2 Log

if (\Yii::$app->request->isPost) {

    $log = new LogCovid();

    $log->username = \Yii::$app->user->identity->username;

    $log->datetime = date('Y-m-d H:i:s');

    $log->ip = \Yii::$app->request->getUserIP();

$sql2 = "INSERT INTO users_covid_log (username, ip, date_login) VALUES ('$log->username','$log->ip' ,'$log->datetime')";

        Yii::$app->db->createCommand($sql2)->execute();

วันอังคารที่ 1 มีนาคม พ.ศ. 2565

Tips Yii2

 ///คำสั่ง ให้อยู่ในบรรทัดเดียว

<"atribute=" ">
'contentOptions' => ['style' => 'text-overflow: ellipsis; white-space: nowrap; max-width: 25vw; overflow: hidden;'],
<label = "">