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

时间:2017-10-03 14:45:44

标签: php mysql arrays

抱歉,我是初学者,有代码和英语:)。我有一个代码将一些信息保存到数据库。数据库有一个" id"并且有一个" next_number"柱。使用更新next_number列中的单元格的脚本时。但我想用这个数字更新整个列。 " next_numer"各种各样。我想保存这个" $ department-> next_number + 1"对所有人而言#id;#34; s。有人可以帮我吗?

//...
    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;
}

1 个答案:

答案 0 :(得分:0)

我不确定你的问题是什么,但如果你想在表'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;

我希望能帮助你一点。

问候。