Как записать уникальный идентификатор без auto_increment - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Как записать уникальный идентификатор без auto_increment

#1 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 212
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Август 2018 - 06:49

Здравствуйте. Интегрируют тут потихоньку пользователей форума с игровым сервером. В базе данных игрового сервера у таблицы с игроками поле id (в моем случае uid) нет автоинкримента, соответственно, обычными способами тут не обойдешься. Скажите, какие варианты есть?

				$pvpgn = new \IPS\sharedstats\Records\PvPGNConnection;

				$pvpgn->uid = {вычислить уникальный uid и записать сюда};
				$pvpgn->acct_username = $values['sharedstats_pvpgn_account_add_name'];
				$pvpgn->username = mb_strtolower($values['sharedstats_pvpgn_account_add_name']);
				$pvpgn->acct_passhash1 = \IPS\Helpers\PVPGN\Hash::get_hash(\IPS\Request::i()->$values['sharedstats_pvpgn_account_add_password']);
				$pvpgn->acct_email = '2';
				$pvpgn->acct_userid = '3';

Вложений


0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 389
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 356
  • IPB version:I have no IPB
 

Отправлено 09 Август 2018 - 08:57

Цитата

Как записать уникальный идентификатор без auto_increment
У Вас uid имеет первичный ключ.
0

#3 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 212
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Август 2018 - 09:27

Как мне его передать правильно?
0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 389
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 356
  • IPB version:I have no IPB
 

Отправлено 09 Август 2018 - 09:37

Если это данные с какого сервера, то там и нужно смотреть.
0

#5 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 212
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Август 2018 - 09:47

Нет, здесь должен быть просто порядковый id как у автоинкримента.
0

#6 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 389
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 356
  • IPB version:I have no IPB
 

Отправлено 09 Август 2018 - 10:33

Если поле нигде не используется, то генерируйте значение.
Как вариант использовать текущее время
0

#7 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 212
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Август 2018 - 10:41

Блин, вы вообще меня не поняли. Карочи сделал так:
$pvpgn->uid = \IPS\Member::loggedIn()->member_id;


Конфликтов не должно быть по идее, так как автоинкремента нет, да и потом можно будет сравнивать пользователей по ID.
0

#8 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 389
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 356
  • IPB version:I have no IPB
 

Отправлено 09 Август 2018 - 10:55

Все я понял :)

Судя по коду, это форма. И если юзер с ID 5 попытается отправить форму во второй раз, то получит ошибку, т.к. в таблице уже есть запись с uid 5.
0

#9 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 212
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Август 2018 - 11:00

Просмотреть сообщениеnewbie 09 Август 2018 - 10:55 сказал(а):

Все я понял :)

Судя по коду, это форма. И если юзер с ID 5 попытается отправить форму во второй раз, то получит ошибку, т.к. в таблице уже есть запись с uid 5.


Ага, только так и должно быть, запрещено одному пользователю регистрировать больше 1 аккаунта )

Ну так совсем криво, да?

					$uid = $this->db->select('*', 'pvpgn_BNET', null, '`uid` DESC')->first();
					$uid = intval($uid['uid']) + 1;

Сообщение изменено: TemKa_SD (09 Август 2018 - 11:01)

0

#10 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 389
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 356
  • IPB version:I have no IPB
 

Отправлено 09 Август 2018 - 11:11

Тогда используйте ID юзера, если собираетесь связать столбец с ним.
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна