Home >Backend Development >PHP Tutorial >Barcode check digit calculation formula PHP, T-SQL program_PHP tutorial

Barcode check digit calculation formula PHP, T-SQL program_PHP tutorial

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-07-13 17:47:551595browse

Recent work involves calculating the batch change of the 13th check digit of barcodes. AI, barcode printers, barcode scanners and other software have built-in check digit generation. I searched online and found a barcode generator, but it was not flexible enough for us, so we wrote one Mini program to calculate check digit

条形码 条码打印机 条码扫描器

OK Let’s take a look at the PHP version first. It’s much simpler than what you can find online


function en13($code)
{ 
$tmp1=0;
$tmp2=0;
for($i=0;$i<12;$i++)
{
If($i % 2==0)
         $tmp1+=substr($code,$i,1);                                                                    else  
         $tmp2+=substr($code,$i,1);                                                                                                                       Return (10-($tmp2*3+$tmp1)%10)%10;
}

//Test www.2cto.com
$t="6939762911740";
echo en13($t);
function en13($code)
{
$tmp1=0;
$tmp2=0;
for($i=0;$i<12;$i++)
{
if($i % 2==0)
$tmp1+=substr($code,$i,1);
else
$tmp2+=substr($code,$i,1);
}
return (10-($tmp2*3+$tmp1)%10)%10;
}

//Test
$t="6939762911740";

echo en13($t);

There is also a need to update the data in the MSSQL database in batches without writing a program. Update it directly in the SQL Enterprise Manager

T-SQl code

declare @str as varchar(15)

declare @tmp as varchar(30)

declare @t1 as int
declare @t2 as int
declare @i int
set @t1=0
set @t2=0
set @str='6939762911740'
set @i=1
while @i<=12
begin
If @i % 2=0
begin
                 set @t1=@t1+substring(@str,@i,1)
end
else
begin
                 set @t2=@t2+substring(@str,@i,1)
          end 
set @i=@i+1
       
end

set @tmp=(10-(@t1*3+@t2)%10)%10

--end function
SELECT @t1 ,@t2,@tmp
declare @str as varchar(15)
declare @tmp as varchar(30)
declare @t1 as int
declare @t2 as int
declare @i int
set @t1=0
set @t2=0
set @str='6939762911740'
set @i=1
while @i<=12
begin
if @i % 2=0
begin
set @t1=@t1+substring(@str,@i,1)
end
else
begin
set @t2=@t2+substring(@str,@i,1)
end
set @i=@i+1

end

set @tmp=(10-(@t1*3+@t2)%10)%10

--end function
SELECT @t1 ,@t2,@tmp www.2cto.com
ENA-13 check code calculation method Code position serial number The code position serial number refers to the sequence number from right to left including the check code (the code position serial number of the check code is 1). Calculation steps The calculation steps of the check code are as follows: a. Starting from code position number 2, sum up the digital codes of all even digits. b. Multiply the sum from step a by 3. c. Starting from code position number 3, sum the digital codes of all odd digits. d. Add the results of steps b and c. e. Subtract the result obtained in step d from a number that is greater than or equal to the result obtained in step d and is a minimum integer multiple of 10. The difference is the value of the required check code. Example: The calculation of the check code of code 690123456789X1 is shown in Table 1. Table 1 Calculation method steps of check code with examples 1. Serial number from right to left Position number 13 12 11 10 9 8 7 6 5 4 3 2 1 Code 6 9 0 1 2 3 4 5 6 7 8 9 X 2. Starting from serial number 2, find the sum of the even digits ① 9+7+5+3+1+9=34 ① 3. ①*3=② 34×3=102 ② 4. Starting from serial number 3, find the odd digits The sum of the above numbers ③ 8+6+4+2+0+6=26 ③ 5. ②+③=④ 102+26=128 ④ 6. Subtract the number that is greater than or equal to the result ④ and is the smallest integer multiple of 10 ④, the difference is the value of the required check code 130-128=2 check code X1=2

Excerpted from Tao2581’s daily notes

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/478484.htmlTechArticleRecent work involves calculating batch changes of the 13th check digit of barcodes, AI, barcode printers, barcode scanners and other software Built-in check digit generation, I searched online and found a barcode generator, but...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn