Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在表单中创建运行编号_Php_Mysql_Sql - Fatal编程技术网

使用PHP在表单中创建运行编号

使用PHP在表单中创建运行编号,php,mysql,sql,Php,Mysql,Sql,我想为每个表单创建一个带有参考编号或运行编号的表单。例如,第一种形式的参考号为“PPKT/01/14”,第二种形式的参考号为“PPKT/02/14”,第三种形式的参考号为“PPKT/03/14”,依此类推 “PPKT”是固定的。“01,02,03,…”是运行编号。“14”是一年 这是我创建的代码。它起作用了。我的问题是:如果2014年底,我怎么才能停止运行编号“01,02,03,…”呢。我想把2015年的跑步号码改回“01”。代码下面的示例“PPKT/01/15”是数据库 <?php $c

我想为每个表单创建一个带有参考编号或运行编号的表单。例如,第一种形式的参考号为“PPKT/01/14”,第二种形式的参考号为“PPKT/02/14”,第三种形式的参考号为“PPKT/03/14”,依此类推

  • “PPKT”是固定的。“01,02,03,…”是运行编号。“14”是一年

  • 这是我创建的代码。它起作用了。我的问题是:如果2014年底,我怎么才能停止运行编号“01,02,03,…”呢。我想把2015年的跑步号码改回“01”。代码下面的示例“PPKT/01/15”是数据库

    <?php
    $con=mysqli_connect("localhost","root","","info");
    // Check connection
    if (mysqli_connect_error()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    function number($str)
    {
    preg_match_all("/[0-9]/",$str, $num);
    $num = implode("",$num[0]);
    return $num;
    }
    
    //declare variable
    $x="PPKT";
    $y=date("y");
    
    $sql="Select mp_id, reference_no from information".
    " ORDER BY mp_id DESC";
    
    $result = mysqli_query($con,$sql) or die(mysqli_connect_error());
    
    if (mysqli_num_rows($result) > 0) 
    { 
        $row = mysqli_fetch_array($result);
        $mp_id=$row['mp_id'];
        $reference_no=$row['reference_no'];
    
            $mystr=$mp_id;
            $b=substr($mystr,0,2);
    
            $j=number($mystr)+1;
            $z=sprintf("%02s",$j);
            //$d=$b.$z;
    }
    else
    { 
    //will create if not in table
            //$b = $x;    
            $z=sprintf("%02s",1);
            //$d=$b.$z;
    }
    
    // output
    $reference_no="$x/$z/$y";
    echo "Reference Number => ".$reference_no;
    ?>
    
  • 更换线路:

    $j=number($mystr)+1;
    
    带有测试年份的条件语句。如果年份不同,则
    $j
    为1,否则,您可以通过向
    $mystr
    添加1来获得
    $j
    ,就像在原始代码中一样

    新守则将是:

    if (mysqli_num_rows($result) > 0) 
    { 
        $row = mysqli_fetch_array($result);
        $mp_id=$row['mp_id'];
        $reference_no=$row['reference_no'];
    
            $mystr=substr($reference_no,5,2);
            $ref_year=substr($reference_no,-2);
    
            if ($ref_year == $y) { // Checks if the year changed
              $j=number($mystr)+1;
            } else {
              $j=1;
            }
    
            $z=sprintf("%02s",$j);
    
    }
    

    我不明白你的意思。请解释一下细节。非常感谢。
    if (mysqli_num_rows($result) > 0) 
    { 
        $row = mysqli_fetch_array($result);
        $mp_id=$row['mp_id'];
        $reference_no=$row['reference_no'];
    
            $mystr=substr($reference_no,5,2);
            $ref_year=substr($reference_no,-2);
    
            if ($ref_year == $y) { // Checks if the year changed
              $j=number($mystr)+1;
            } else {
              $j=1;
            }
    
            $z=sprintf("%02s",$j);
    
    }