Как вставить ID +1 и получить последний ID?

Я хочу вставить id и + 1, вставить поля формы в таблицу MySQL. Я хочу получить последний идентификатор операции вставки в качестве возвращаемого значения моего запроса, но у меня с ним возникли проблемы.

это мой код для получения последнего идентификатора.

function GenIDInv()
{
    $CI = get_instance();
    $CI->db->select('n_id');
    $CI->db->from('sltax_notification_name');
    $CI->db->order_by("n_id", "desc");
    $query = $CI->db->get();
    $result = $query->row();

    if (!empty($result)){

        $result = $result->n_id;
        $rid = substr($result,6,9);
        $id =  $rid+1;
        echo date('Ym') . sprintf("%'.03d\n",$id);
    }
}

когда я вставляю идентификатор, это не +1

«Некоторые проблемы» - вам следует более подробно описать, что это означает.

Difster 14.12.2018 03:54

когда я вставляю идентификатор в базу данных, он не +1.

xwzscE 14.12.2018 04:05

Что означает +1 в вашем случае?

zerkms 14.12.2018 04:07

У меня id = 201812001, я хочу получить последний идентификатор и вставить id = 201812002 в данные

xwzscE 14.12.2018 04:08

Я подозреваю, что вы не получаете того, чего ожидаете от $ rid.

Difster 14.12.2018 04:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
131
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Документы Codeigniter: http://codeigniter.org.cn/user_guide/database/query_builder.html?highlight=max#CI_DB_query_builder::select_max

SELECT Max(n_id) FROM sltax_notification_name;

попытка завершена: $ result = $ this-> db-> select_max ('n_id') -> from ('sltax_notification_name‌') -> get () -> row ();

user10492760 14.12.2018 04:53
Ответ принят как подходящий

Я понял, что вы хотите с 201812001 по 201812002

Попробуй это:

$rid = substr($result, 8, 1);
//echo $rid; // $rid should contains 1
$id =  $rid+1;

Я предполагаю, что ваше поле n_id составлено следующим образом: [ГГГГММ] [XXX] => [ДАТА] [ID]

Первый вопрос: что произойдет, если ваш идентификатор больше 999?

Я предполагаю, что вы хотите обрабатывать id больше 999.

Итак, теперь проблема, которую нам нужно решить, заключается в том, как добавить 1 к части идентификатора и оставить его заполненным 0 слева.

Вы получаете свой последний идентификатор из базы данных, это приятно, вероятно, это строка.

Первое, что мы хотим сделать, это отделить часть идентификатора от части даты.

$n_id = $result->n_id;
$id = substr($n_id, 6, strlen($n_id)) // we know the first 6 characters are part of the date and the rest is part of id

затем мы хотим добавить один к $id

    $id += 1; // that statement will cast our string to int

    #Now we want to cast it to string and pad with 0 if needed 
    if (strlen($id) < 3) {
        $id = str_pad($id, 3, '0', STR_PAD_LEFT);
    }

Теперь нам просто нужно склеить кусочек

   $date = new Datetime();
   $newN_id = $date->format('Ym').(string)$id

Другие вопросы по теме