2011-12-11 51 views
0

如果我有這樣的模式建立的ID:發現第一種可能性

CX00其中0的是可更換的只是一個號碼..但以下是已在使用中:

- CX00 
- CX02 
- CX04 
- CX05 
- CX07 
- CX10 
- CX11 
- CX12 

我怎樣才能輕鬆地通過PHP或MySQL查找值CX01, CX03, CX06, CX08, CX09, CX13+作爲可用值?

+2

爲什麼你不只是使用例如一個自動增量字段? –

+0

因爲我正在做一些想要重複使用一次刪除ID的公司..如果它只是那麼簡單> _ < – Sander

+0

然後這將是棘手!我不認爲你可以構建一個查詢,說「給我第一個不在桌子上」。我懷疑除了每次循環之外,你還有很多選擇。 (也許你可以做一次性的練習,生成一個未使用的ID列表。) –

回答

1

我不知道你的數據是如何存儲的,所以我將離開獲取數組中的ID。一旦你這樣做,這將找到下一個可用的。

<?php 

function make_id($n) { 
    $out = 'CX'; 
    if ($n < 10) $out .= '0'; 
    return $out . $n; 
} 

// Get these from some source 
$items = array('CX00', 'CX02', 'CX04', 'CX05'); 
$id = make_id(0); 

for($i=0; in_array($id, $items); $i++) 
    $id = make_id($i); 

echo $id; 

?> 

這被稱爲蠻力方法,如果您有很多ID,那麼可能會有更多有效的方法。最多100個,不應該有任何問題。

0

在PHP中,只需使用for循環計算出id,直到找到足夠多的未使用的ID爲止......您預計會有多少個總ID?