2012-09-19 87 views
1

假設我有一個名爲groupID的列,它是給一組人的數字。基本上我想要做的就是從該列中獲取最大值,加1並將該輸入存儲到php中的變量中。PHP PDO最大值

例如,如果最後一個組的id是5,那麼下一個組的id應該是6.任何想法?

$gid = $link->prepare("SELECT MAX(Group_ID) FROM Conference"); 
$gid->execute(); 
$groupid = $gid->fetchColumn(); 

$stmt = $link -> prepare("INSERT INTO Conference (`Group_ID`) VALUES (:groupid)"); 
$stmt->bindParam(':groupid', $groupid); 
$stmt->execute(); 
+0

確定我得到了你想要的東西......你能告訴我們你有什麼迄今所做... – Surace

+0

@Surace是的,我現在發佈的代碼。 – Richard

+0

最好不要重複相同的問題。謝謝。 – Kev

回答

3

這將是更易於使用的AUTO_INCREMENT列,當你不會有這個擔心自己的。

要手動解決它,SELECT MAX(id) FROM table會爲您提供當前正在使用的最大ID,並且爲此添加+1即可達到目標。這很容易受到競爭條件的影響(如果兩個客戶端這樣做並從MAX()獲得相同的值?),但恢復模式非常簡單:重複直到成功。

+0

你能看到我編輯過的文章嗎,對嗎? – Richard

+0

@Richard:我只是寫'$ gid-> fetchColumn();'但是是的,看起來不錯。 – Jon

+0

好的,我在其中插入了另一段代碼。這一切都看起來好嗎?出於某種原因,我的頁面無法正常加載。早些時候,當有一些代碼問題時,它就完成了這個任務。控制檯也沒有顯示任何東西。有任何想法嗎? – Richard

1

$ gid = $ link-> prepare(「SELECT MAX(Group_ID)FROM Conference」); (「INSERT INTO會議(Group_ID)SELECT MAX(Group_ID)FROM Conference」);}};}};

$ stmt-> execute();

1

嘗試像

$gid = $link->prepare("SELECT MAX(Group_ID) as maximum FROM Conference");