Question

trevison
Активный

суть: аккаунт должен перенесён в другую таблицу и удалиться из нынешней

format(MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "INSERT INTO `delacc` SELECT * FROM `accounts` WHERE `nickname` = '%s'", params[0]);
mysql_function_query(MySQLGo, MYSQL_GLOBAL, true"""");
format(MYSQL_GLOBAL, sizeof(MYSQL_GLOBAL), "DELETE FROM `accounts` WHERE `nickname` = '%s'", params[0]);
mysql_query(MySQLGo, MYSQL_GLOBAL);

не срабатывает запрос и в mysql_log ошибка: [ERROR] CMySQLQuery::Execute[] - (error #1136) Column count doesn't match value count at row 1

Share this post


Link to post

8 answers to this question

  • 0
Cawfee
Великий Гуру
1 час назад, trevison сказал:

тогда нельзя будет зарегистрироваться под этим аккаунтом

 

С чего бы это? Просто будете рассматривать два атрибута для того, чтобы понять, есть ли валидный зарегистрированный аккаунт с некоторым именем, и извлекать ID найденного аккаунта. И именно по полученному ID в дальнейшем работать с аккаунтом.

 

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

 

изображение_2023-08-24_214440576.png

 

И, соответственно, для того, чтобы удалить аккаунт с ID 10, будет достаточно создать в таблице deleted_accounts новую запись, записав в поле account_id значение 10. А для того, чтобы проверить, есть есть ли валидный аккаунт с некоторым именем, найдите все ID аккаунтов, которые имеют искомое имя, и проверьте, точно ли есть хотя бы один ID, отсутствующий в таблице deleted_accounts.

Share this post


Link to post
  • 0
trevison
Активный

удаление аккаунта с возможностью дальнейшего восстановления

аккаунт уходит в резервную таблицу, а с основной таблицы аккаунт удаляется

появляется возможность восстановить удалённый аккаунт

Share this post


Link to post
  • 0
Cawfee
Великий Гуру

@trevison, опять тот же вопрос: в чем целесообразность? Зачем удалять аккаунт из основной таблицы? Создавайте новое поле в основной таблице, в котором храните признак удаленного аккаунта. 

Share this post


Link to post
  • 0
trevison
Активный

тогда нельзя будет зарегистрироваться под этим аккаунтом

в планах, потом сделать так, чтобы при восстановлении аккаунта выбирался новый никнейм, если никнейм уже заняли у удалённого аккаунта

Share this post


Link to post
  • 0
trevison
Активный

хороший вариант реализации, но если так делать, то нужно будет ещё очень много кода переписывать, где проверка идёт на ник ( например: /offjail /offwarn /offmute и всё оффлайн взаимодействие с игроком )

Share this post


Link to post
  • 0
trevison
Активный

хорошо, спасибо вам за совет по реализации

тему можно закрывать

Edited by trevison

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • ВасилийСталин
      By ВасилийСталин
      VERDICT PROJECT - V:ACE
       
      Соревновательный проект на платформе SA-MP, вдохновлённый духом Counter-Strike: тактические перестрелки, честный рейтинг и ванильное PVP.
      В разработке, не используются ресурсы, из открытых источников. Всё строится с нуля, собственный игровой мод, полностью кастомный интерфейс и игровой лаунчер.
      Что мы разрабатываем:
       
      - Рейтинговый режим с подбором по ELO. Равные соперники, честные матчи, путь от новичка до вершины таблицы.
      - Полностью кастомный интерфейс (CEF): меню, лобби, магазин и статистика такого уровня, какого на SA-MP почти не встретишь.
      - Легионеры - уникальные оперативники с индивидуальным дизайном и редкостью, открываются через боевой пропуск или чёрные ячейки (кейсы).
      - Скины на оружие и кейсы - коллекционная система в духе CS. -> В активной разработке
      - Киберспортивные команды: теги, ростеры, матчи команда против команды.
      - Тренировка аима, система рангов, ежедневные награды и не только.
       
      Продуманный баланс и внимание к деталям ванильного сражения - то, ради чего мы за это взялись.
      Проект уже на серьёзной стадии разработки. Мы открываем сообщество раньше официального анонса, чтобы первые скриншоты, новости и дата старта достались тем, кто был с нами с самого начала. Мы всегда рады открытой критике, или советам - сделаем игру лучше для всех!
      Подписывайтесь, чтобы не пропустить официальное заявление о запуске и первые материалы проекта.
       
      Группа VK: https://vk.ru/verdictcs
      Официальная почта: verdictproject@mail.ru
    • Kevin_McCarthy
      By Kevin_McCarthy
      🔒 ОТКРЫТИЕ НАБОРА НА ЗАКРЫТОЕ БЕТА-ТЕСТИРОВАНИЕ (ЗБТ)!
      Друзья! Мы выходим на самый ответственный этап разработки Brilliant RP. Проект уже практически готов к полноценному запуску, но перед тем как открыть двери для всех игроков, нам нужно тщательно проверить каждую систему, каждую работу и каждую строчку кода.
      Именно поэтому мы объявляем о старте Закрытого Бета-Тестирования!
      🏆 ТОП-3 ТЕСТЕРА ПОЛУЧАТ КРУТЫЕ ПРИЗЫ!
      Мы высоко ценим время и вклад каждого участника. Тестеры, которые проявят наибольшую активность, найдут больше всего уникальных багов и подробно опишут их в нашей Google-форме, получат ценные награды:
      🥇 1 МЕСТО: 3000 рублей на кошелек, 100.000$ игровой валюты, и Diamond VIP на 30 дней
      🥈 2 МЕСТО: 2000 рублей на кошелек, 75.000$ игровой валюты, и Diamond VIP на 30 дней
      🥉 3 МЕСТО: 1000 рублей на кошелек, 50.000$ игровой валюты, и Diamond VIP на 30 дней
      📝 Как стать участником ЗБТ?
      Заполни заявку на участие: 👉 https://vk.ru/gtasamp_brilliantrp
      Дождись одобрения.
    • OOLOAIS
      By OOLOAIS
      Ищу скрипт для самп/crmp который может скопировать акссесуары с аризоны/родины пж помогите