создать собственный уникальный идентификатор - PullRequest
0 голосов
/ 23 апреля 2020

привет, у меня есть эта функция для генерации пользовательского идентификатора в модели

    public function generateImpId() {
        $now = date('ymd');
        $check = "SELECT COUNT(*) as count FROM OP_IMP_15 WHERE DATE(OP_IMP_15.created_at) = DATE(NOW())";
        $querycheck = $this->db->query($check);
        $id = $querycheck->row()->count;

        return 'IMPDEMO'.$now.str_pad($id, 4, '0', STR_PAD_LEFT);
    }

я вызываю эту функцию для генерации идентификатора в excel и увеличиваю ее для каждой строки

    //start loop excel from 2nd row. Row 1 is title row
    for ($j = 2; $j <= $lastRow; $j++) {
      $implementation_id = $this->M_MRCR_A->generateImpIdInc();
      $implementation_id = substr($implementation_id, 0, -4) .str_pad($j - 1, 4, '0', STR_PAD_LEFT); // since $j starts with 2

// then construct array for post to DB 
        $myArray_db[] = [
          'implementation_id' => $implementation_id,

мой результат с указанным выше кодом, я успешен, чтобы каждая строка данных в одном одном посте была уникальной

проблема если я публикую данные во второй раз (с тем же Excel). у меня есть два того же идентификатора, например: IMPDEMO2004230001, тогда, если я загружу третий, у меня будет три того же идентификатора

моя цель сделать ID всегда увеличивается, поэтому он всегда будет уникальным (я не могу использовать uuid, потому что мне нужен пользовательский формат). мне нужен код, который всегда проверяет ID IMPDEMO в БД и делает его + 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...