Ответы пользователя по тегу MySQL
  • Автоматическая генерация номеров как в 1c?

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

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

    Например

    $id = 15;
    echo str_pad($id, 10, "0", STR_PAD_LEFT); // выведет 0000000015


    Если не используются ORM модели, а используется обычная обертка для работы с бд, то получая строку, добавляйте по ключу ('id_ad_1c')
    ...
    $row['id_ad_1c'] = str_pad($row['id'], 10, "0", STR_PAD_LEFT)
    $result[] = $row
    ...

    В любом случае, получается номерок а-ля 1с. Функцию предоставили

    Если нужен генератор строки (могут быть только числовые символы)
    function generateNumber($length = 10)
    {
      $chars = ['0','1','2','3','4','5','6','7','8','9']; //можно дополнять и буквами
      $number = '';
      $count = count($chars);
      for($i = 0; $i < $length; $i++) {
        $number .= $chars[mt_rand(0,$count)];
      }
      return $number;
    }
    Ответ написан
    Комментировать