我有一個表employees
,其中包含公司中僱員的詳細信息。如何爲php mysql驅動的數據庫生成下一個id號
每個人都分配了一個唯一的序列號。每當我們添加一個新員工時,它應該在添加表單中顯示一個序列號,這個數字比最後輸入的員工的序列號大一個數字。
例如,數據庫包含12名員工。最後一個條目的序列號是12
。當我嘗試添加新員工時,應自動分配序列號13
。所以我不需要輸入序列號。我怎樣才能做到這一點?
我有一個表employees
,其中包含公司中僱員的詳細信息。如何爲php mysql驅動的數據庫生成下一個id號
每個人都分配了一個唯一的序列號。每當我們添加一個新員工時,它應該在添加表單中顯示一個序列號,這個數字比最後輸入的員工的序列號大一個數字。
例如,數據庫包含12名員工。最後一個條目的序列號是12
。當我嘗試添加新員工時,應自動分配序列號13
。所以我不需要輸入序列號。我怎樣才能做到這一點?
如果序列號被設置爲AUTO_INCREMENT你可以查找下一個AUTO_INCREMENT值事先使用:
$sql = "SHOW TABLE STATUS LIKE table_name";
$r = mysql_query($sql);
$row = mysql_fetch_assoc($r);
$next_increment = $row['Auto_increment'];
其中table_name是您的表的名稱。
即使查詢當前數據庫狀態(除了正好有一個用戶正在使用應用程序),也無法準確預測下一個auto_increment ID。例如:打開表單,從數據庫中獲取下一個auto_increment ID,並顯示13作爲下一個預測值。與此同時,另一位用戶打開表單並將其保存得比您更快。其他用戶記錄的真實ID將爲13,您的14.
如果您確實想要在表單中顯示使用的ID,則需要對記錄進行某種分配(例如,創建一個空記錄打開表格並使用其ID)。有了某種狀態字段或必填字段,您可以過濾應用程序中的空記錄,直到它們完成並定期清除未完成的記錄。唯一的缺點是,如果用戶在沒有完成的情況下打開表單(例如14,15,18,20,...),它可能會給你不連續的ID。
for employee_id use auto increment
您對員工序列號沒有使用auto_increment嗎?爲什麼不? – 2012-01-05 13:36:47
我正在使用自動增量功能。我知道它會自動獲得一個系列號碼。但我的問題是如何在添加之前在「添加新員工表單」中顯示下一個(自動遞增的)值。 – user1010966 2012-01-05 13:41:47
你想從表格中獲得下一個自動增量_id嗎? – 2012-01-05 13:57:30