發表文章

目前顯示的是 10月, 2018的文章

[上課筆記] 常看見的系統維護時間並取消SQL連接

常見在PHP網頁遊戲或網站更新備份,會在指定日期或星期會自動進行系統維護並取消SQL連結。這部分分為兩個階段來討論。首先,開發者不會在每一個php去head宣告sql連結,會在另外一個建立linkdb.php並透過include作為SQL連結需要。再來是,每當被執行linkdb.php時,再連結SQL前做個時間檢查,如果剛好符合維修時間內,那應該停止SQL連接並回傳告知系統維修中 *******************************linkdb.php******************************* <?php $link=mysqli_connect("localhost","root","","a2018"); mysqli_query($link,"set names utf8") or die("資料庫連結發生錯誤"); include("stopdb.php"); ?> 接下來分兩步驟,首先到資料庫建立判斷的時間所用,再來設計一個stopdb.php,做為時段上的檢查 *******************************stopdb.php******************************* <?php $check_time=strtotime("+7hour"); $now_time=date("H:i:s",$check_time); $sql="select * from w05_webstop where ws_start<='$now_time' and '$now_time'<=ws_stop"; $ro=mysqli_query($link,$sql); $row=mysqli_fetch_assoc($ro); $num=mysqli_num_rows($ro);//計算這次搜尋到幾筆資料 if($num==1){ $check_stop=0; $now_day=date("Y-

[上課筆記] 使用PHP做一個資料管理

作業練習 1. 建立一個新的TABLE,欄位4個,規格與範例如下 [索引鍵(int)] [動物名稱(text)] [動物種類(text)] [體重(int)] 1 阿瘦 貓熊 30 2. 建立一個頁面,提供文字欄位3個與按鈕1個,可以新增動物資料 3. 建立一個頁面,可以顯示所有動物的資料,例如: 1 阿瘦 貓熊 30 4. 建立一個頁面,可以刪除指定的動物資料(輸入索引鍵刪除) 5. 建立一個頁面,可以修改指定的動物資料,藉由輸入索引確定欲修改的資料(但索引鍵不能被修改) 會用到的PHP功能 include("head.php"); 可以將別的網頁整合到目前內容,通常被用PHP做分割頁面做header.php+body.php=index.php,以及一些通用的語法可以做個include方便節省 switch($page){ case "main": include('main.php'); break; } SWITCH判斷,比較多項目要做不同結果執行時,比較清楚條列的判斷式用途 $link=mysqli_connect("localhost","root","","a2018"); mysqli_query($link,"set names utf8"); 透過php去登入SQL,需要輸入位置,帳號,密碼,跟資料庫名稱。而設定UTF8作為避免寫入中文時會發生亂碼,所以第兩行通常會跟著馬上寫。同樣這兩行會習慣獨立寫在例如linkdb.php內,再透過include("linkdb.php");的方式快速放在會操作SQL的網頁中。 header("location:???"); 設計form表單送出資料時,如果你操作沒有導向其他頁面,其之前的資料還會存在,會導致你重整F5時,資料又再重複送出。所以會利用header要求到其他頁面脫離的表單的服務。 $sql="SELECT * from w04_animal;"; mysqli_query($link,$sql); 每次要執行上傳遠端的SQL語法時,每

[上課筆記] PHP與SQL 第二彈

前置作業(作業):建立三個table 1. 客戶資料 - 欄位:客戶帳號、密碼、姓名 CREATE   TABLE   w03_customer   ( c_id   int ( 10 ) AUTO_INCREMENT ,   c_account   text ,   c_password   text ,   c_name   text ,   PRIMARY   KEY ( c_id ) ) # crate table 客戶資料表 (索引欄 整數(長度10), 客戶帳號 文字串, 密碼 文字串, 姓名 文字串, primary key(索引值)); 2. 訂單資料 - 欄位:產品編號、購買數量、客戶編號、訂購時間 CREATE   TABLE   w03_order   ( o_id   int ( 10 ) AUTO_INCREMENT ,   o_product_sn   text ,   o_buy_num   int ( 10 ) ,   o_customer_sn   text ,   c_order_time   DATETIME ,   PRIMARY   KEY ( o_id ) ) # crate table 訂單資料表 (索引攔 整數(長度10), 產品編號 文字串, 購買數量 整數(長度10), 客戶編號 文字串, 訂單時間 日時, primary key(索引值)); 3. 產品資料 - 欄位:產品名稱、產品金額、產品介紹 CREATE   TABLE   w03_product   ( p_id   int ( 10 ) AUTO_INCREMENT ,   p_product_name   text ,   p_product_price   decimal ( 10.2 ) ,   p_product_desc   text ,   PRIMARY   KEY ( p_id ) ) # crate table 訂單資料表 (索引攔 整數(長度10), 產品名 文字串, 產品價格 浮點數(長度10,小數點2), 產品介紹 文字串, primary key(索引值)); 4. 新增TABLE 1 與 TABLE 3 的內容資料,請都使用語法建立 (新增4筆資料 for table 1 & 新增5筆資料