使用插入mysql表的最后一个数据生成下一个数字

时间:2018-01-23 08:46:07

标签: php mysqli

我的数据库有一个名为 tbltest 的表。在此处,列 id 设置为自动增量,另一列命名为 app_id

我想要的是我想在有人访问My Form页面时生成app_id,名为 apply.php 并在那里提交申请表。是否可以在表中获取最后插入的id并获取为该id生成的相应app_id,并在提交表单页面时生成新的app_id。

enter image description here

现在因为最后插入的id是1而app_id是IVISA250531,所以,当我们提交表单时,它应该生成Next app_id,应该是,

IVISA250532

2 个答案:

答案 0 :(得分:2)

你可以

$sql = "SELECT * FROM tbltest ORDER BY id DESC LIMIT 1;";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
    $row = mysqli_fetch_assoc($result) ;

    $str = $row["app_id"];//"IVISA250532";
    $int = preg_replace('/[^0-9]/', '',$str);//to get the Int from string '250532'
    $pure_str = str_replace($int, "", $str);// tog get only the string word 'IVISA'

    $Next_app_id = $pure_str.($int+1); // << that is what you need "IVISA250533"
}

答案 1 :(得分:1)

    <?php 

    class operation{

        public function contains($id, $app_id){

           $match ="IVISA";

           preg_match_all('/^([^\d]+)(\d+)/', $app_id, $match);

                $text = $match[1][0];
                $num = $match[2][0];
                $newid = $num+$id;
                return  $text.$newid;
        }


    }

    $str = new operation;
    $app_id = $str->contains(10, "IVISA1005050421321");
   echo $app_id;

    ?>