Привет, у меня возникли проблемы с введением номера отслеживания в базу данных. кажется, что в некоторых случаях он генерирует дубликат записи. Я генерирую базу отслеживания в последней записи в моей таблице first_track и увеличиваю ее на 1. Теперь моя проблема в том, что когда пользователь нажимает одновременно. он генерирует один и тот же номер отслеживания. как я могу это предотвратить? Кстати, вот мой код в генерации номера отслеживания. Я также возвращаю счет до 0001 каждую 1-ю запись каждого месяца.Предотвращение повторной записи с использованием php и mysql в codeigniter
<!----------Model-------->
$this->db->order_by("first_trackid", "desc");
$query = $this->db->get('first_track');
if($query->num_rows() > 0)
{
$result = $query->result();
if(date('m') != substr($result[0]->dtsno,2,2)){
$dtsno = date('ym').'0001';
}
else{
$dtsno = $result[0]->dtsno+1;
}
return $dtsno;
}
else
{
return $dtsno = date('ym').'0001';
}
<!--- END model------->
<!---controller----------->
//call the model for generating dtsno
$firsttrack->dtsno = $this->user_information_model->dtsno();
//insert to table first_entry
$this->user_information_model->first_track($firsttrack);
Вы хотите создать идентификатор трека в последовательном формате или в любом случайном нет? –
Я хочу сгенерировать его с шагом в месяц. например, в январе 2017 года первая запись будет 17010001, тогда следующая запись для января будет 17010001 + 1. 17 будет годом, а 01 будет месяц, а следующие 4 цифры будут количеством отслеживаемых номеров в месяц. – PiDO
. Итак, вы дублируете код, когда в одно и то же время отправляется более одного пользователя? –