繁体   English   中英

PHP将生成的数字保存到mysql数据库

[英]PHP save a generated number to mysql database

抱歉,我是使用代码和英语的初学者:)。 我有一个代码,可以将一些信息保存到数据库。 该数据库具有一个“ id”和一个“ next_number”列。 使用更新next_number列中的单元格的脚本时。 但是我想用该数字更新整列。 “ next_numer”是多种多样的。 我想将此“ $ department-> next_number +1”保存到所有“ id”。 有人可以帮我吗?

//...
    public static function generateCode($department_id)
{
    $code = '';
    $db   = JFactory::getDbo();

    $department = RSTicketsProHelper::getDepartment($department_id);

    if ($department->generation_rule == RST_DEPARTMENT_RULE_RANDOM)
    {
        // trick to enter the loop below
        $found = true;
        while ($found)
        {
            // add the department prefix
            $code = $department->prefix . '-2017' . strtoupper(self::generateNumber(4));

            $query = $db->getQuery(true);
            $query->select($db->qn('id'))
                ->from($db->qn('#__rsticketspro_tickets'))
                ->where($db->qn('code') . '=' . $db->q($code));
            $db->setQuery($query);
            $found = $db->loadResult();
        }
    }
    elseif ($department->generation_rule == RST_DEPARTMENT_RULE_SEQUENTIAL)
    {
        // add the department prefix
        $code = '2017' . str_pad($department->next_number, 3, 0, STR_PAD_LEFT) . $department->prefix;

        $department->save(array(
            'id'          => $department->id,
            'next_number' => $department->next_number + 1
        ));
    }

    return $code;
}

我不确定您的问题是什么,但是如果您想对表中所有记录的“ next_number”列中的+1求和,则可以使用SQL轻松完成。 例:

UPDATE YOUR_TABLE_NAME SET next_number = next_number + 1;

或者,如果您只想更新一条记录,则可以使用:

UPDATE YOUR_TABLE_NAME SET next_number = next_number + 1 WHERE id=1;

希望对您有所帮助。

问候。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM