2012-08-25 126 views
0

我正在使用MySQL PHP類從表中獲取最大ID。如何從數組中獲得價值?

$sql="SELECT MAX(id) FROM `".TABLE_CUSTOMERS."`"; 
$rows = $db->fetch_array($sql); 

現在我想使用該最大ID作爲值,並添加1到它。

$maxid=rows[0]; 
$newid=maxid+1; 

上面的代碼不起作用。

如果我不上$ maxid print_r的,我得到的是:

([MAX(id)] => 5) 

,MySQL的PHP​​類之前,我用來做這樣那樣:

$MaxID = mysql_query("SELECT MAX(face_id) FROM `".$DBprefix."faces`"); 
$MaxID = mysql_fetch_array($MaxID, MYSQL_BOTH); 
$MaxID = $MaxID[0]; 
$newid=$MaxID+1; 

而且沒有問題的工作

這裏是fetch_array函數:

public function fetch_array($sql){ 
$query_id = $this->query($sql); 
$out = array(); 

while ($row = $this->fetch($query_id)){ 
    $out[] = $row; 
} 

$this->free_result($query_id); 
return $out; 
} 
+0

'$ maxid = $ rows [0] ['MAX(id)']'是你想要的。 – moonwave99

+0

不要自己設置下一個記錄的ID,而是使用數據庫中的自動增量列。這是確保id保持唯一性的唯一方法。 – Arjan

回答

0

嘗試使用別名來定義的最大值;

$sql="SELECT MAX(id) as `max` FROM `".TABLE_CUSTOMERS."`"; 

,你應該能夠檢索最大值:

$rows[0]['max']; 

所以,加入1:

$newId = $rows[0]['max']+1; 
+0

'print_r($ rows ['max']);'不打印任何東西$ newId = 1 – Solver

+0

它正在工作。謝謝 – Solver

0

使用此代碼:

$maxid=$rows['MAX(id)']; 
$newid=$maxid+1; 

我希望它能幫助;)

0

這個怎麼樣?

$sql="SELECT (MAX(id) + 1) AS max FROM `".TABLE_CUSTOMERS."`";