2014-05-14 70 views
0

你好,大家好我有兩個主鍵一個是ID它正在從AUTO_NUMBER其如何生成自動編號具有唯一值

值從10000開始,走在桌子上。

第二字段是圖像標識這是主鍵+唯一索引裝置不能接受重複

但對於這一個I M使用HTML的隱藏字段但在值I M使用蘭特()函數。

在這裏的問題是它的生成重複的數字,我需要獨特的值會導致圖像

字段將不接受重複的。

我應該使用哪些函數來生成唯一的數字。

這裏是隱藏域代碼:

<input type="hidden" name="ImageID" id="ImageID" value="<?php echo rand(1000,9999999999); ?>" /> 
+0

是否有圖像標識必須是整數? – Eddie

+0

'ID'和'ImageID'有什麼區別?它是多餘的嗎? –

+0

是的,它必須是整數,但不重要從何地何時開始和多少是,但必須是唯一的 – user3624731

回答

1

當前的UNIX時間戳總是將是唯一的。您還可以在幾微秒內獲得額外的精度。

microtime()

爲了防止正好在同一微秒(似乎不太可能)被添加條目從任何可能的衝突,您可以追加一個隨機編號。

0

您可以使用uniqid()。 uniqid()函數根據microtime生成一個唯一的ID(當前時間以微秒爲單位)。或者你也使用time()。

+0

我可以爲它指定數字嗎蘭特()函數 – user3624731

+0

不,你不能指定像蘭特這樣的數字。但是你可以創建一個函數並連接其他一些值,以使其變得更大或更獨特。 – truesource

+0

它已經13個字符沒有必要使它大,所以使它更少因爲我不想讓我的桌子沉重 – user3624731

0

你也可以試試這個:

<?php 
$imageId = range(1000, 10000); 
shuffle($imageId); 
?> 

<!-- you can use loop --> 
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo $imageId[0]; ?>" /> 
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo $imageId[1]; ?>" /> 
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo $imageId[2]; ?>" /> 
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo $imageId[3]; ?>" /> 
+0

它將如何洗牌,可能或重複或沒有? – user3624731

+0

此函數將數組隨機排列(隨機化元素的順序)。 http://www.php.net/manual/en/function.shuffle.php –

0
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo time(); ?>" /> 
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo time(); ?>" /> 
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo time(); ?>" /> 
<input type="hidden" name="ImageID" id="ImageID" value="<?php echo time(); ?>" /> 
+0

Arayan:親愛的價值是不會改變,當頁面正在refereshing。 – user3624731

+0

你需要什麼。 –

+0

通過refereshing頁面值必須改變 – user3624731