首页 > 解决方案 > 获取一年的记录数

问题描述

我正在尝试编写一些 PHP 代码,以便当用户输入报价时,应用程序会查看报价表,计算当年提出的报价数量,然后将计数加 1,最终结果是提供一个该年的唯一且连续的报价编号。格式应该是Q/YY/序号

//Insert New Q Reference
    //set standards
    $time=strtotime($values['QuoteDate']);
    $LongYear=date("Y",$time);
    $ShortYear=date("y",$time);

    //Get current number quotes for the year which quote was issued
    global $dal;
    $dal_table = $dal->Table("quotations"); 
    if ($values["QuoteDate"])
        { 
            $rstmp = CustomQuery("select count(*) as count1 from quotations where '$LongYear' = ".$LongYear); 
            $datatmp = db_fetch_array($rstmp); 
            $count_value = 0;   
            if ($datatmp["count1"]) $count_value = $datatmp["count1"];

            $values['QuoteReference'] = 'Q/'.$ShortYear.'/'.str_pad(($count_value+1), 4, '0', STR_PAD_LEFT);

        }

我遇到的问题是代码只是返回总序号+ 1,并且没有考虑到年份的计数!

看下面截图,2018应该是Q/18/0001

标签: phpmysql

解决方案


在您的查询中,您正在比较

'$LongYear' = ".$LongYear

这将永远成功。您应该从列的值中比较年份:

YEAR(QuoteDate) = ".$LongYear

推荐阅读