function getprimary($conn,$table_name,$field_name,$int,$type){
$sql = "select max($field_name) from ".$table_name;
$res =mysql_query($sql,$conn);
$row = mysql_fetch_row($res);
$str = $row[0];
$arr = stristr($str,'0');
$temp = $int+$arr+1;
$newid=substr_replace($temp,$type,0,1);
return $newid;
}给你个函数参考!getprimary($conn,mytable,id,100000,E);这样调用的意思是mytable表的主健字段自动以E00001,E00002,E00003......增加,不知道是不是你要的!
$sql = "select max($field_name) from ".$table_name;
$res =mysql_query($sql,$conn);
$row = mysql_fetch_row($res);
$str = $row[0];
$arr = stristr($str,'0');
$temp = $int+$arr+1;
$newid=substr_replace($temp,$type,0,1);
return $newid;
}给你个函数参考!getprimary($conn,mytable,id,100000,E);这样调用的意思是mytable表的主健字段自动以E00001,E00002,E00003......增加,不知道是不是你要的!
include_once "inc/class/db.php";
$db = new Db();function getPrimary($db,$table_name,$field_name){
$sql = "select max($field_name) from ".$table_name;
$str = $db->fetchOne($sql);
if(!isset($str))
{
$str = date("Ymd");
$newid = $str."0001";
}
else
$newid = $str+1;
return $newid;
}$id = getPrimary($db,"order_1","id");
$sql = "INSERT INTO order_1 VALUES('$id',NOW())";
$stmt = $db->query($sql);
if($stmt)
{
echo "操作成功";
}
?>按照日期递增的订单号根据dzxccsu 的改了一下DROP TABLE IF EXISTS `order_1`;
CREATE TABLE `order_1` (
`id` varchar(16) NOT NULL,
`create_time` datetime NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;订单表
方法1:create table tbl_test (id bigint not null auto_increment, value varchar(20) not null, primary key (id));
alter table tbl_test auto_increment = 100000000;方法2:create table tbl_test (id bigint not null auto_increment, value varchar(20) not null, primary key (id));
mysql_query($conn, "insert into tbl_test (value) values ('foo')");
$order_id = "1" . sprintf("%08d", mysql_insert_id($conn));
$dingdanhao = str_replace("-","",$dingdanhao);
$dingdanhao .= rand(0,1000);
我这么写可以么
prefix作为varchar类型,主键
id作为int类型,主键,并且自增
注意,两个字段都是主键
订单号就会像以下那样
prefix id
A 1
A 2
...
B 1
B 2
prefix作为varchar类型,主键
id作为int类型,主键,并且自增
注意,两个字段都是主键
订单号就会像以下那样
prefix id
A 1
A 2
...
B 1
B 2