php 自动生成编号

html代码

<label>责任书编号</label>

<input type="text" name="responsecode" id="responsecode" value="<?php echo isset($responsecode)?$responsecode:‘‘; ?>" readonly />

<span><em>*</em></span>

PHP代码

public function create(){

if($this->input->server(‘REQUEST_METHOD‘) == ‘GET‘){

$data=array();

$data = $this->_getGlobalData($data);

$data[‘responsecode‘] = $this->dball->getNo("SG_".date("Ymd",time()),5);

$this->load->view(‘project/project/datadetailcreate.php‘,$this->_beforemethod($data));

}

else if($this->input->server(‘REQUEST_METHOD‘) == ‘POST‘){

$datain=$_POST;
            if($datain[‘companyname‘]==‘‘){
                $result["ret"] = 1;
                $result["success"] = false;
                $result["msg"] = "请输入企业名称!";
                $result["obj"] = ‘‘;
                echo json_encode($result);
                exit;
            }

$sql = "select * from projects where responsecode = ‘".$datain[‘responsecode‘]."‘";
            $query = $this->mydb->find($sql);
            if(count($query[‘obj‘]) > 0)
            {
                $result["ret"] = 1;
                $result["success"] = false;
                $result["msg"] = "责任书编号已存在,请确认!";
                $result["obj"] = ‘‘;

echo json_encode($result);
                exit;
            }
            $sql = "select * from projects where projectname = ‘".$datain[‘projectname‘]."‘";
            $query = $this->mydb->find($sql);
            if(count($query[‘obj‘]) > 0)
            {
                $result["ret"] = 1;
                $result["success"] = false;
                $result["msg"] = "项目名称已存在,请确认!";
                $result["obj"] = ‘‘;
                echo json_encode($result);
                exit;
            }

$datainfo = $this->_getRequestModel();
            $datainfo = $this->_setAddModifyData($datainfo);
            $datainfo[‘status‘] = ‘审核通过‘;
            $datainfo[‘mikey‘] = $this->dball->getNo("P",7);
            $datainfo[‘saferid‘] = $this->sessioninfo[‘userId‘];
            $datainfo[‘companyname‘] = $_POST[‘companyname‘];
            $result=$this->mydb->addData($this->_beforeMethod($datainfo));
            $result=$this->_afterDBAct($result);

$code=$this->dball->getNo(‘PTP‘.date(‘Ymd‘,time()),6);
            $progressid = ‘申报开工条件审查新开工‘;
            $sql = "insert into projectprogresses(id,code,projectcode,projectid,progress,userid,date,createuser,createdatetime,modifyuser,modifydatetime) values(‘‘,‘".$code."‘,‘".$datainfo[‘code‘]."‘,".$id.",‘".$progressid."‘,‘".$this->sessioninfo[‘userId‘]."‘,‘".date(‘Y-m-d‘,time())."‘,‘".$this->sessioninfo[‘fullName‘]."‘,‘".date(‘Y-m-d‘,time())."‘,‘".$this->sessioninfo[‘fullName‘]."‘,‘".date(‘Y-m-d‘,time())."‘)";
            $this->mydb->execSql($sql);
            $this->setLogs("新建项目",$datainfo);
            echo $this->_ReturnMsg($result);

}

else redirect($this->url_module.‘/‘.$this->url_model);

}

/**
     * 获取编号
     * @param string $type  编号的固定开始文字
     * @param integer $num  编号的最加流水号长度,默认2位
     * @return array $result
     */
    public function getNo($type,$num=2){
        $CI =& get_instance();
        $sql = "SELECT * FROM dictdatas WHERE type=‘编号生成‘ AND name = ‘".$type."‘";  //dictdatas 数据字典
        $query = $this->db->query($sql);
        $result = $query->result_array();
        //print_r($CI);exit();
        if (sizeof($result) == 0){
            $result = $type.‘‘.str_pad(‘1‘, $num,‘0‘,STR_PAD_LEFT);
            $data[‘type‘] = ‘编号生成‘;
            $data[‘seq‘] = $type;
            $data[‘value‘] = ‘1‘;
            $data[‘name‘] = $type;
            $data["createdatetime"] = date(‘Y-m-d G:i:s‘);
            $data["createuser"] = $CI->session->userdata[‘userId‘];
            $this->db->insert(‘dictdatas‘,$data);
        }
        else {
            $no = $result[0][‘value‘] + 1;
            $data[‘value‘] = $no;
            $data["modifydatetime"] = date(‘Y-m-d G:i:s‘);
            $data["modifyuser"] = $CI->session->userdata[‘userId‘];
            $this->db->where(‘id‘,$result[0][‘id‘]);
            $this->db->update(‘dictdatas‘,$data);
            $result = $type.‘‘.str_pad($no,$num,‘0‘,STR_PAD_LEFT);
        }
        return $result;
    }

时间: 2024-11-06 03:29:56

php 自动生成编号的相关文章

框架-页面获取自动生成编号

页面获取自动生成编号方法        List<DataParam> parpams = new List<DataParam>();        parpams.Add(new DataParam("Code", "KT"));        parpams.Add(new DataParam("Count", "1"));        DbService.Instance().ExecuteF

mysql 自动生成编号函数

根据需求,保存表数据时需要自动生成一个编号,格式如:AA-2020-03-31-0001  (AA-yyyy-MM-dd-序号).数据库用的mysql,所以创建一个mysql函数. 1.建表: create table sys_sequence_number(sequenceType varchar(30) not null,val int not null,len int not null); 2.建函数 DELIMITER $$DROP FUNCTION IF EXISTS getSeque

框架-数据库自动生成编号

1.    --课件自动编号    declare @pt_OtherCateCode varchar(50)    exec App_s_spGetSequenceNumber 'KJ',1,@pt_OtherCateCode output,0 2./*Func:获得自动编号CreateDate:20140829CreateUser:Jesson*/ Create Proc SdErp_spGetNumberExecute(    @pi_Action varchar(50);    )as 

#mySQL# 自动生成编号

CREATE TABLE TABLE_1(ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,// ID列为无符号整型,该列值不可以为空,并不可以重复,而且自增. NAME VARCHAR(5) NOT NULL)AUTO_INCREMENT = 100;(ID列从100开始自增) PRIMAPY是主键的意思,表示定义的该列值在表中是唯一的意思,不可以有重复. UNSIGNED是无符号的意思,代表该字段没有正负. AUTO_INCREMENT可

系统中生成编号/单号问题的实现方案讨论

应用场景 场景:对于大多数电商系统或财务系统来说,系统中的单号一般都不是从1开始的自增数字,而是一串有一定意义的字符串序列. 而往往这样的单号是要全局唯一的,不可重复. 那么,每次新增订单记录时,这个单号就要按照指定的规则来生成. 常见的订单号规则是字母前缀+日期+时间+定长的数字,如DD201610201559060001(format:XXYYYYMMDDHHmmssNNNN),PZ16102015000012(format:XXYYMMDDHHNNNNNN) 常见方案... 实现这样的场景

按规则自动生成单据编号 以及并发问题

描述:每种单据新建时,自动生成它的单据编号. 规则如:固定码+日期+流水号 (ABC1603180001) 方法一:触发器 触发器的缺点是,执行了sql之后才看到编码. 测试:流水号不能超过最大数,否则后面的号码全是0 --有两张表,客户表和项目表,要求:新建项目时自动生成项目编号,每个不同的客户的项目的编号从1开始 --项目编号格式为PJ+"-"+"客户编号"+"-"+"日期"+"-"+"流水号

PHP版本的自动生成有规则的订单号(或编号)

<?php /** * PHP版本的自动生成有规则的订单号(或编号) * 生成的格式是: 20130103000001 前面几位为当前的日期,后面6位为系统自增长类型的编号 * 原理:  * 1.获取当前日期格式化值; * 2.读取文件,上次编号的值+1最为当前此次编号的值(记录以文件的形式存储) * (下月会接着这个编号) */ class FileEveryDaySerialNumber { private $filename; //文件名  private $separate; //系统分

自动生成单据编号(转)

专门设计一个数据表用于存放管理软件中各种单据的最新的单据编号.编写一个存储过程用于自动生成单据编号. --****************--计算id --使用//表级排它锁//防止用户同时修改该记录--****************CREATE PROCEDURE GetId@xh integer,@id integer outAS /*如果想在连接一中锁住整个表,不允许其他事务更新表中任何记录,但可以读取记录,可使用HOLDLOCK选项,即(HOLDLOCK   等同于   SERIALI

Word章 节标题自动编号并由此自动生成目录 -- 含视频教程(1)

1. 写论文之前事先调好 写论文的时候,难免要用到章节,如何实现下图的效果呢? 其实结合用好两个功能就行了: >> 视频教程链接:B站,速度快,清晰 事先调好,可以给后续工作带来很多便利,但假如你论文已经写完了,才看到这篇文章,又该如何调整呢?请看下边讲述. 2. 论文写好之后才调整 1.如果,此时你的论文已经写好了,章节编号都是手动输入的,不是自动生成的.如图: 2.按照"1"中视频教的方法,把多级编号链接到对应的标题后,那么你会得到如图所示的结果: 一共有自动编号 +