簡體   English   中英

獲取表的最后一條記錄

[英]get last record of a table

我有一個表格,可以讓用戶創建新記錄,
在要自動增加的ID的字段中,我希望用戶通過某種方式在字段值中顯示此記錄的最新記錄號。

我在想類似的東西:

<input type="text"  value="<?php echo $myQuery['recordId'].length+1"/> 

但這是行不通的。

同樣,這只是為了獲取<input>的默認值

無需查找最后一個ID,並且此表單僅由一個管理員使用。

您可以通過選擇找到一個加最高的ID:

SELECT MAX(id)+1 FROM table

但是就像David所說的那樣,您不能保證這將是所使用的ID,因為2個人可能會同時加載該頁面。

要獲取與該連接相關的最后一個ID,請使用mysql_insert_id

在您的情況下,您必須在db中插入一個空記錄,然后才能保證它會計數。 如果用戶不繼續操作,它將留下很多空的記錄,但是您可以在每次加載表單時進行清理,方法是刪除一個多小時前創建的沒有標題值或類似內容的記錄。

如果絕對需要將其作為整數,則始終可以創建僅具有一個auto_increment列的特殊表,將其插入其中,獲取last_insert_id()並使用它。 這有點像甲骨文中的序列。 不使用的ID將會浪費,但是不會發生與多用戶方案相關的其他問題。 以下代碼是從mysql文檔中復制的有關信息功能的代碼。 去那里閱讀此代碼的承諾。

CREATE TABLE sequence (id INT NOT NULL);
INSERT INTO sequence VALUES (0);
UPDATE sequence SET id=LAST_INSERT_ID(id+1);
SELECT LAST_INSERT_ID();

現在回到我自己的話。 如果不必一定是整數,則可以使用guid 在php中有一個uniqid函數,在mysql中有一個uuid函數。 該理論說,即使每個人都始終保持獨立地生成向導,每個向導也將是唯一的。

因此,這是一種實現方式:

<?php
    $query = "select uuid()";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);
    $uuid = $row[0];
?>
<input type="text" value="<?php echo $uuid; ?>"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM