Помогите с SQL запросом банами/разбанами - Дизайн и модификация Invision Power Board

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

 

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

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

  • 2 Страниц +
  • 1
  • 2

Помогите с SQL запросом банами/разбанами

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

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

Отправлено 03 Сентябрь 2018 - 12:43

Здравствуйте. У меня есть игровой сервер, который в случае бана игрока записывает данные в базу данных таблицу stats_bans. Создан таск для разбана, который удаляет бан с выше упомянутой таблицы и переносит его в таблицу stats_banhistory.

Есть конфликт, который нужно решить. Пи переносе всех банов со stats_bans сбрасывается автоинкримент (на сколько я понял) и уже новые баны идут в ID 1, возникает конфликт с таблицей stats_banhistory, так как там уже есть бан с ID 1. Как быть?

Блин, закончилась квота на загрузку скринов, буду на внешний сервис грузить:
http://prntscr.com/kpzflw
http://prntscr.com/kpzfhn
http://prntscr.com/kpzfr2

Пришла сейчас мысль, может при выполнении таска выбирать кол-во записей из banhistory и обновлять автоинкримент по нему у bans?

Вложений


Сообщение изменено: TemKa_SD (03 Сентябрь 2018 - 12:45)

0

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

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

Отправлено 03 Сентябрь 2018 - 13:21

Автоинкремент не обнуляется при удалении записей. Значит, поле id без атрибута AUTO_INCREMENT.
0

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

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

Отправлено 03 Сентябрь 2018 - 13:26

http://prntscr.com/kpzyqx
0

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

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

Отправлено 03 Сентябрь 2018 - 13:39

А у второй таблицы?
0

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

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

Отправлено 03 Сентябрь 2018 - 13:42

У второй я специально убрал, там был другой конфликт, в формировании банов. Т.е различался id из первой таблицы и второй. Т.е автоинкрименты одни были, а записи другие. Я хотел чтобы id во вторую переносился без автоинкримента.
0

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

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

Отправлено 03 Сентябрь 2018 - 13:47

Хотя нет, там тоже был дубликат ентри. Почему обнуляется id?
0

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

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

Отправлено 03 Сентябрь 2018 - 15:22

Вы для начала определитесь где ошибка.

Если поле имеет атрибут AUTO_INCREMENT, то при вставки записи не нужно его указывать.
0

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

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

Отправлено 03 Сентябрь 2018 - 15:37

Я понимаю, у меня просто есть раздел амнистий, это обжалование бана, и там идет сравнение ID в banhistory и bans, id должны быть одинаковыми у бана, а они разные когда стоит автоинкримент. Хорошо, я сейчас верну автоинкримент в banhistory, потом покажу что будет.
0

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

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

Отправлено 05 Сентябрь 2018 - 07:16

Ну вот, как и говорил:

https://prntscr.com/kqq4z2
https://prntscr.com/kqq53h
https://prntscr.com/kqq54r
https://prntscr.com/kqq56b
https://prntscr.com/kqq57k
0

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

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

Отправлено 05 Сентябрь 2018 - 08:04

Покажите код, где идет добавление записей в таблицу stats_bans
0

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

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

Отправлено 05 Сентябрь 2018 - 08:33

Часть на игровом сервере C++, часть (через жалобы и ручное добавление) на сайте.

http://prntscr.com/kqqmeb
0

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

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

Отправлено 05 Сентябрь 2018 - 10:10

Можно обернуть insert в try/catch, или установить в TRUE 3-ий параметр
$db::i('stats')->insert('table', $data, TRUE);

Я бы еще проверил счетчики автоинкремента у таблиц.
0

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

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

Отправлено 05 Сентябрь 2018 - 10:16

Блин, я не разберусь с try и catch, плохо понимаю что они делают. А третий параметр что включает?
0

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

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 075
  • Регистрация: 20-Март 09
  • Репутация: 2 436
  • IPB version:3.1.x
 

Отправлено 05 Сентябрь 2018 - 11:12

У вас насколько я понял проблема не в том что он обнуляется, а в том что вы вставляете данные в таблицу с автоинкрементом указывая явный ид. Так всегда есть опасность дублирования ключей, в таком случае нужно тщательно составить логику работы скрипта. По хорошеиу тону поля которые имеют автоинкремент ид не задается. Имхо что-то тут с построением логикой. Обнуляет счетчик только запрос TRUNCATE.
0

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

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

Отправлено 05 Сентябрь 2018 - 11:12

Просмотреть сообщениеTemKa_SD сказал(а):

Блин, я не разберусь с try и catch

Прочитайте документацию :)
Методом тыка далеко не уедешь.

Просмотреть сообщениеTemKa_SD сказал(а):

А третий параметр что включает?

Если запись уже существует, то будет перезаписана.

Лучше всего разобраться, почему возникает ошибка.
0

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


  • 2 Страниц +
  • 1
  • 2


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

  

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
При копировании материалов с сайта
прямая ссылка на источник обязательна