Мне нужен автоматический сгенерированный порядковый номер, начиная с 001 ТОЛЬКО ДЛЯ 3 ЦИФРОВ в PHP / MYSQL
ex: 001 next будет 002, а затем будет 003 … 009 .. 010 ..119..120..etc, но сгенерированный номер должен быть последовательно не таким, как 001, затем 120 или 008 и т. д., мне нужно указать порядковый номер ,
на самом деле у меня есть система отслеживания продукта. где мне нужен миксер моего основного идентификатора продукта + номер автопоследовательности (только 3 цифры могут меняться при желании), поэтому мой конечный идентификатор продукта становится:
111-001, 111-002, 111-003, 111-004 …. и т.д.
Примечание: этот номер автоматической последовательности будет вставлен в мою базу данных mysql (после нажатия кнопки ADD следует запрос Update (следовательно, моя автоматическая последовательность будет вводиться в базу данных с запросом Update))
Просто добавьте длину 3 и zerofill в столбец идентификаторов.
ALTER TABLE `YOUR_TABLE` CHANGE `id_column` `id_column` INT( 3 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT
Это должно работать для вас с небольшими изменениями, чтобы соответствовать требованиям ур
<?php $connection = mysql_connect("localhost","root","") or die("no connection"); $db_select=mysql_select_db("test",$connection) or die("no connection to db"); $query3 = "SELECT * FROM simple"; $result3 = mysql_query($query3); $count = mysql_num_rows($result3); if($count == 0) { $seq = 1; $ref = 111; $a = sprintf("%04d", $seq); $emp_id = $ref.'-'.$a; $query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')"; $result=mysql_query($query)or die(mysql_error()); } else { $query2 = "SELECT * FROM simple ORDER BY id DESC LIMIT 1"; $result2 = mysql_query($query2); $row = mysql_fetch_array($result2); $last_id = $row['emp_id']; $rest = substr("$last_id", -4); $insert_id = "$rest" + 1; echo $ars = sprintf("%04d", $insert_id); $ref = 111; $emp_id = $ref.'-'.$ars; $query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')"; $result=mysql_query($query)or die(mysql_error()); }
Попробуйте этот код:
$maxDigit=5; //maximum digit of ur number $currentNumber=0020; //example this is your last number in database all we need to do is remove the zero before the number . i dont know how to remove it $count=strlen($currentNumber); //count the digit of number. example we already removed the zero before the number. the answer here is 2 $numZero=""; for($count;$count<=$maxDigit;$count++) $numZero=$numZero+"0"; $newNum=$newNum+$currentNumber;
Выход: 00020