2012-08-25 132 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."`";