依卡號刪資料

對應程式: delete_card_by_card_id.php

09-依卡號刪資料

業務功能

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

頁面操作

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

處理邏輯

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

備註

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

使用的 Functions

Function定義於
get_card_by_card_id($card_id)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