接續上周的聯表查詢結果,今天先介紹了LIKE語法的模糊查詢,要求大家建立一個查詢的功能,可以查詢產品名稱,同時也介紹了mysqli_num_rows的指令,用來返回查詢結果的筆數.

然後課堂的練習,改為另一張table,並且查詢的條件增加為兩個欄位.

接著是大量修改資料練習,需要把所有撈出來的資料放入表單中,然後再一次送出多筆修改資料的sql語法給資料庫,
這邊開始我們試著加入一些CSS來讓頁面美觀一些,同學們也要開始在日後的練習裏試著把HTML的標籤和CSS加入頁面中,這樣之後在面對乙術的題目時才會比較從容應對.

大量修改功能實作

接著是講解核取方塊和選單按鈕,然後利用選單按鈕來製作一個刪除資料的功能,在這裏我們需要去偵測那個按鈕有被選取,有被選取的按鈕會送出一個我們設定的資料序號值,我們再利用這個值來決定要刪那一筆,要注意到sql語句的寫法要正確,不然會刪錯筆或全刪光.


刪除功能實作

最後是新增的練習,新增就簡單多了.


新增資料功能實作

在最後一小時,老師補充了檔案上傳的功能,今天只有教了最基本的上傳及檔案移動,命名,下周會再補充一些功能;

上傳功能實作

在這個範例中,老師使用的判斷上傳大小的功能是無效的,因為PHP的作業方式是先把檔案上傳後才會取得檔案的size資訊,但是如果檔案大小超過php.ini或apache伺服器的設定值時,檔案根本不會上傳,自然無法取得檔案大小的資訊來做判斷,因此這部份日後應該是要搭配前端的javascript來做判斷;

不過我自己上網找到了另一個變通的做法,這個方式是利用$_FILES[‘file’][‘error’]這個參數,當上傳的檔案超過大小時,會返回錯誤訊息存入error中,有兩個相關的值分別是;

UPLOAD_ERR_INI_SIZE

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

UPLOAD_ERR_FORM_SIZE

Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.

因為$_FILES[‘p_pic’][‘error’]會在檔案的header執行,因此會比其它參數還早拿到值,因此可以用來做為判斷,所以偵測檔案是否超過大小的判斷要改成;

if ($_FILES['p_pic']['error'] == UPLOAD_ERR_INI_SIZE){
echo "檔案超過2MB,無法上傳!";

exit();
}

要用UPLOAD_ERR_INI_SIZE還是UPLOAD_ERR_FORM_SIZE來做判斷要視設定檔是否有正確設定來決定.

最後修改日期: 2018-11-24

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。