2014-09-03 3 views
0
  1. Я хочу создать форму с номером ссылки или номером для каждой формы. Например, сначала введите ссылочный номер «PPKT/01/14», вторая форма «PPKT/02/14», третья форма - «PPKT/03/14» и т. Д.Создать пробег в форму с помощью PHP

  2. «ППКТ» - это исправление. «01,02,03, ..» работает номер. «14» - год.

  3. Это код, который я создал. Оно работает. Мой вопрос: как я могу остановить текущий номер «01,02,03, ..», если конец 2014 года. И я хочу начать работу с номером «01» на год 2015 года. Пример «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; 
    ?> 
    
  4. Информация База данных:

    CREATE table information (
    mp_id int(4) NOT NULL, PRIMARY KEY' 
    reference_no varchar(15) NOT NULL, 
    name varchar(20) NOT NULL); 
    

ответ

0

Заменить строку:

$j=number($mystr)+1; 

с условным оператором, который проверяет год. Если год отличается, то $j - 1, в противном случае вы можете добавить получение $j, добавив 1 к $mystr, как в вашем исходном коде.

Новый код будет:

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); 

} 
+0

Я не понимаю, что вы имеете в виду. Пожалуйста, объясните немного деталей. спасибо – neo

+0

Я буду работать над изменениями и опубликовать их в ближайшее время. –

Смежные вопросы