PHP функция для автоинкремента с измененным значением

У меня есть требование, где мне нужно вставить user_id в следующем формате

13310_userid_1
13310_userid_2
13310_userid_3

где

13310 = $_GET['userid'] //user id from session
userid = constant //constant text defined
1/2/3 = autoincrement value

Здесь вариация когда user_id изменено, значение автоинкремента будет вставлено с начала, которое будет выглядеть

13311_userid_1
13311_userid_2
13311_userid_2

и не

13311_userid_4
13311_userid_5
13311_userid_6

Как я могу проверить, если user_id изменяется и вставьте значение автоинкремента из 1 ?

Спасибо

0

Решение

Я не уверен, что это то, что вам нужно, но вы можете использовать массив для хранения приращения каждого продолжения:

$const = 'userid';
$user_id = '13310';
$array_increment[$user_id] =1;
foreach(array('Franck','Robert','You','Me') as $index=>$test){
if($index==2)$user_id = '13311';
if(!isset($array_increment[$user_id])){
$array_increment[$user_id]=1;
}

$increment = $array_increment[$user_id];

echo $user_id.'_'.$const.'_'.$increment.'<br />';
$array_increment[$user_id]++;
}

Покажет :

13310_userid_1
13310_userid_2
13311_userid_1
13311_userid_2
0

Другие решения

Вы можете сохранить добавочное значение каждого идентификатора пользователя во временном сеансе:

Для каждого запроса проверьте, существует ли уже $ _GET [‘userid’] в сеансе, если не создайте его со значением ноль.
Увеличьте на единицу и используйте это значение, чтобы создать строку для вставки в БД.

    //set up session if it is not already setif(!isset($_SESSION['users'][$_GET['userid'])){
$_SESSION['users'][$_GET['userid']=0;
}

$_SESSION['users'][$_GET['userid']=$_SESSION['users'][$_GET['userid']+1;
$user=$_GET['userid'].'_userid_'.$_SESSION['users'][$_GET['userid'];//insert $user into your DB or permanent storage.
$db->insert($user);
0

(это должен быть комментарий, но он немного многословен)

Ваш смысл имеет смысл только в том случае, если где-то здесь фигурирует база данных, но вы никогда не заявляли явно, что это так, и какая это база данных.

Проектирование реляционной базы данных (и в значительной степени проектирование нереляционной базы данных) подчиняется правилам нормализации. Это методы для описания структуры ваших данных и не позволяют вам делать глупости. это нарушает первое правило.

Предполагая, что вы проектировали систему правильно, вы бы оставили эти три атрибута в качестве отдельных полей. Но это не отвечает на вопрос о том, является ли идентификатор номинальным, кардинальным или порядковым (а в случае порядковых чисел существует ли требование, чтобы они были последовательными).

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector