Added min/max to nextid/lastid

This commit is contained in:
Miles Lott 2001-03-29 06:10:47 +00:00
parent 5713329ff9
commit f67f7719c2

View File

@ -1297,8 +1297,9 @@
/*! /*!
@function next_id @function next_id
@abstract return the next higher value for an integer, and increment it in the db. @abstract return the next higher value for an integer, and increment it in the db.
The selection of max is a hack, since PHP thinks 0 > 0
*/ */
function next_id($appname) function next_id($appname,$min=0,$max=999999999)
{ {
global $phpgw; global $phpgw;
@ -1314,7 +1315,11 @@
if (empty($id) || !$id) { if (empty($id) || !$id) {
$id = 1; $id = 1;
$phpgw->db->query("INSERT INTO phpgw_nextid (appname,id) VALUES ('".$appname."',".$id.")",__LINE__,__FILE__); $phpgw->db->query("INSERT INTO phpgw_nextid (appname,id) VALUES ('".$appname."',".$id.")",__LINE__,__FILE__);
} elseif($id<$min) {
$id = $min;
$phpgw->db->query("UPDATE phpgw_nextid SET id=".$id." WHERE appname='".$appname."'",__LINE__,__FILE__); $phpgw->db->query("UPDATE phpgw_nextid SET id=".$id." WHERE appname='".$appname."'",__LINE__,__FILE__);
} elseif ($id>$max) {
return False;
} else { } else {
$id = $id + 1; $id = $id + 1;
$phpgw->db->query("UPDATE phpgw_nextid SET id=".$id." WHERE appname='".$appname."'",__LINE__,__FILE__); $phpgw->db->query("UPDATE phpgw_nextid SET id=".$id." WHERE appname='".$appname."'",__LINE__,__FILE__);
@ -1328,8 +1333,9 @@
/*! /*!
@function last_id @function last_id
@abstract return the current id in the next_id table for a particular app/class. @abstract return the current id in the next_id table for a particular app/class.
The selection of max is a hack, since PHP thinks 0 > 0
*/ */
function last_id($appname) function last_id($appname,$min=0,$max=999999999)
{ {
global $phpgw; global $phpgw;
@ -1343,7 +1349,14 @@
} }
if (empty($id) || !$id) { if (empty($id) || !$id) {
return 1; if($min) { $id = $min; }
else { $id = 1; }
$phpgw->db->query("INSERT INTO phpgw_nextid (appname,id) VALUES ('".$appname."',".$id.")",__LINE__,__FILE__);
} elseif($id<$min) {
$id = $min;
$phpgw->db->query("UPDATE phpgw_nextid SET id=".$id." WHERE appname='".$appname."'",__LINE__,__FILE__);
} elseif ($id>$max) {
return False;
} else { } else {
return intval($id); return intval($id);
} }