依學號刪資料

對應程式: delete_card_by_school_no.php

08-依學號刪資料

業務功能

根據學號完整刪除一位學生在打卡系統中的所有磁卡相關資料,包含:card_inputs(晶片碼對應)、card_kind(班級對應)、cards(卡片主檔)三筆關聯資料。

頁面操作

  1. 在輸入框填入要刪除的學生學號,送出後進入確認頁。
  2. 確認頁顯示該學號對應的 card_input 資料、card_kind 資料、card 主檔資料及各自的筆數。
  3. 點擊「送出」並經 JavaScript confirm 確認後執行刪除。

處理邏輯

  • 透過 get_card_by_school_no() 查詢學號對應的 card_id。
  • 分別查詢 card_inputs、card_kind、cards 三張表,計算每張表中符合該 card_id 的資料筆數。
  • 安全機制:每張表只有在該 card_id 恰好只有 1 筆資料時才執行刪除。若某張表有 0 筆或超過 1 筆,則跳過不刪並顯示紅色警告,避免誤刪。

備註

  • 此頁面與 delete_card_by_card_id.php 功能完全相同,僅查詢方式不同(學號 vs. 卡號),程式邏輯(含 _get_count_num 函式)幾乎一致。
  • 本頁不會刪除打卡紀錄(enter_logs),僅刪除磁卡設定相關資料。
  • 輸入值經 safe_db_value() 處理以防注入。

使用的 Functions

Function定義於
get_card_by_school_no($school_no)enter_logs/inc.php
get_card_input_by_card_id($card_id)enter_logs/inc.php
get_card_kind_relationship_by_card_id($card_id)enter_logs/inc.php
get_all_kinds($is__key__kind_id)enter_logs/inc.php
safe_db_value($s)wp-config.php
_display_num($num)enter_logs/admin/inc.php(頁面本地定義)
$wpdb->delete() / $wpdb->get_results()WordPress core