Как увеличить идентификатор внутри цикла while? - PullRequest
0 голосов
/ 10 января 2019

код:

while (($row= fgetcsv($file_data, 10000, ",")) !== FALSE)
{
    $product_id = date('mdHis');
    $data[] = array(
             'product_id' => $product_id
         );
}

В этом коде я импортирую CSV-файл, который отлично работает. Теперь, когда я вставляю данные csv-файла в свою базу данных, я также вставляю идентификатор, т. Е. product_id Теперь, когда я нажимаю кнопку отправки, в ней сохраняется то же значение, но я хочу сохранить разные product_id для другой строки. Итак, как я могу это сделать? Пожалуйста, помогите мне.

Спасибо

1 Ответ

0 голосов
/ 11 января 2019

Вы можете просто использовать автоинкремент в базе данных, вы можете дополнительно использовать столбец date_created со временем. Цикл слишком быстрый для date () (s - секунды!), Но даже microtime () не имеет особого смысла.

Если вы действительно хотите это сделать, то почему бы в php:

function generateTimeID($start, $format_string) {
    while (True) {
        yield date($format_string) . $start;
        $start ++;
    }
}

$time_generator = generateTimeID($last_id_from_database, 'mdHis-');

while (($row= fgetcsv($file_data, 10000, ",")) !== FALSE)
{
    $product_id = $time_generator->value();
    $time_generator->next();
    $data[] = array(
             'product_id' => $product_id
         );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...