2022年4月6日 星期三

資料庫資料內容記錄設計的原則

資料庫設計內容記錄的原則,盡量直接紀錄以人眼直觀就可以理解的內容,不要再經過頭腦轉譯。

例如:數字序號的紀錄,跟資料記錄筆數有關的,資料庫紀錄的數字應該就直接是紀錄筆數,而不需要再加一,或減一。

在某些程式語言的陣列 ARRAY,其 index,有0 base、也有 1 base的,這就搞得設計師混亂!程式容易出錯!

希望 讓 CRON 要30秒執行一次

 CRON設定是最少一分鐘執行一次。

如果要小於60秒執行一次,就需要額外技巧:配合 sleep 30; 指令完成。

秒數必須是 60秒可以整除的,這樣才不會亂!例如:30秒、20秒、15秒、10秒等。

只要在 CRON 中這樣下:

* * * * <指令1>

* * * * sleep 30; <指令1>

這樣就可以一分鐘內,30秒自動執行一次。

如果是20秒,如下:

* * * * <指令1>

* * * * sleep 20; <指令1>

* * * * sleep 20; <指令1>

這樣就是一分鐘內,執行三次,每20秒一次。


2022年3月19日 星期六

MySQL IF EXIST UPDATE ELSE INSERT

 以下提供的是一般在大量倒資料時,會用到的,請僅慎使用!!

================================================================


IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue') THEN

    UPDATE Table1 SET (...) WHERE Column1='SomeValue'

ELSE

    INSERT INTO Table1 VALUES (...)

END IF;

================================================================


UPDATE Table1 SET (...) WHERE Column1='SomeValue'

IF @@ROWCOUNT=0

    INSERT INTO Table1 VALUES (...)

2022年3月3日 星期四

SC Layout 的 HTML Templates

 整個SC是一個完整的HTML APP 開發系統,他可以產生一個HTML頁。

預先設定的 Layout 可以套用 Header Template 以及 Footer Template,中間就留著放主內容Content APP。

如果有 HTML 的  <head></head>的內容要自己安插進去,就必須寫在 Events onApplicationInit 裡面。

然後,<boby></boby>裡面再分為 會系統重複的 header /footer


SC - FORM 表單設計

 FORM Application有四種不同的形態:

  1. Single Record:一個頁面一筆紀錄
  2. Multiple Records:一個頁面同時多筆紀錄;前面可以有選取勾勾,同時做多筆更新或刪除
  3. Editable grid:以方格式表現多筆紀錄同時編輯;每筆紀錄前面可有刪除、更新、複製等按鈕
  4. Editable grid view:以方格式表現多筆紀錄,但先只是只讀,需要再按一次按鈕才能編輯。

* 做購物車 Cart 更新功能時,SC online Shop 範例Samples 裡面有兩種做法:
  • my_cart :是 Grid Application
  • form_cart:是 Form Editable Grid Application
最後程式是用 my_cart Grid 作法。
序號、品名、[-]按鈕、數量、[+]按鈕、單價、金額

[-][+]按鈕,是使用 Ajax onClick Event 程式執行 數量的增減

2022年3月2日 星期三

SC 欄位效果:sc_input_group

有趣的文章內容,參考:

https://medium.com/scriptcase-master/bootstrap-input-group-in-scriptcase-mastertip09-a20a9a7dca5


1. 我將 sc_input_group(),寫到 internal libraries 裡面,這樣可以共用。

2. 記得使用時,需要先將 ajax_error_output 設成 OFF ,在 application -> Setting 裡面

3. 如果是在 Form 的單一Record 時,在 Event onLoad 裡面,設:

$arr_fields = [

['login'    , 'text', 'R$', 'right'],

['email', 'text', '@gmail.com', 'right'],

['nick_name'    , 'icon', 'fas fa-at', 'right']

];

sc_input_group($arr_fields,null);

如果是 multi records From ,在 EVENT onLoadRecord


# Form with multiple lines example

$arr_fields = [

['field_name', 'text', 'R$', 'right'],

['field_name', 'text', '@gmail.com', 'right'],

['field_name', 'icon', 'fas fa-at', 'right'],

['field_name', 'icon', 'fas fa-phone', 'right'],

['field_name', 'icon', 'fas fa-phone', 'right']

];

sc_input_group($arr_fields, $sc_seq_vert);



2022年3月1日 星期二

ERROR: CONSTANT DS ALREADY DEFINED

Constant 重複定義了! 

找到這個指令:

define('DS', DIRECTORY_SEPARATOR);

修改成這樣就可以了:

if(!defined('DS')){ define('DS',DIRECTORY_SEPARATOR); }

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。