Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Запись в бд (SQL)
dron216 Дата: Понедельник, 07.10.2013, 16:42:08 | Сообщение # 1
Сообщений: 151
Репутация: 18 [ +/- ]
Никак не могу заставить записать значение в бд
Делаю так в конце раунда:
Код
new String:queryUPDATE[100];
Format(queryUPDATE, sizeof(queryUPDATE), "UPDATE Days SET DaysTEST = DaysTEST + 1 WHERE steamid = %s",SteamID[i]);
SQL_FastQuery(g_SQL, queryUPDATE);


Что здесь не так?
Саму бд создает, таблицу создает, стим ид в таблицу записывает, но не хочет прибавить 1 к значению...
 
TEIN Дата: Понедельник, 07.10.2013, 17:06:25 | Сообщение # 2
Сообщений: 563
Репутация: 78 [ +/- ]
Ну зачем же так. Ты лучше при коннекте игрока получи значение DaysTEST, затем храни в переменной. Далее при отключении игрока сохрани значение
 
dron216 Дата: Понедельник, 07.10.2013, 17:24:19 | Сообщение # 3
Сообщений: 151
Репутация: 18 [ +/- ]
Я переделываю плагин "Days In Jail", добавляю сохранение дней в бд. А там же в начале каждого раунда он пишет например "Day 3 Попал в тюрьму за поджог". И каждый новый раунд количество дней растет на один...


Сообщение отредактировал dron216 - Понедельник, 07.10.2013, 17:25:32
 
TEIN Дата: Понедельник, 07.10.2013, 17:26:44 | Сообщение # 4
Сообщений: 563
Репутация: 78 [ +/- ]
Ну и что? это не повод каждый раз заносить данные в базу


Сообщение отредактировал TEIN - Понедельник, 07.10.2013, 17:28:22
 
dron216 Дата: Понедельник, 07.10.2013, 20:32:24 | Сообщение # 5
Сообщений: 151
Репутация: 18 [ +/- ]
Сделал в итоге так:
Код
public OnClientDisconnect(client)
{
     new String:queryUPDATE[256];
     Format(queryUPDATE, sizeof(queryUPDATE), "UPDATE JailDays SET DaysInJail = DaysInJail + %d WHERE steamid = %s", g_Rounds[client], SteamID[client]);
     SQL_FastQuery(g_SQL, queryUPDATE);
}


Добавлено (07.10.2013, 20:32:15)
---------------------------------------------
Но все равно значение в бд не изменяется


Сообщение отредактировал dron216 - Понедельник, 07.10.2013, 20:32:33
 
TEIN Дата: Вторник, 08.10.2013, 10:20:38 | Сообщение # 6
Сообщений: 563
Репутация: 78 [ +/- ]
Я думаю так нельзя..
Лучше получи при коннекте
hDays[data] = SQL_FetchInt(hndl, 0);

Затем каждый раунд
hDays[client]++;

А при отключении игрока
"UPDATE JailDays SET DaysInJail = %d WHERE steamid = %s", hDays[client], SteamID[client]
 
dron216 Дата: Вторник, 08.10.2013, 19:07:04 | Сообщение # 7
Сообщений: 151
Репутация: 18 [ +/- ]
Вот так все заработало:
Код
public OnClientDisconnect(client)
{
  new String:queryUPDATE[256];
  Format(queryUPDATE, sizeof(queryUPDATE), "UPDATE JailDays SET `DaysInJail`= %d WHERE `steamid` = '%s'", g_Days[client], SteamID[client]);
  SQL_FastQuery(g_SQL, queryUPDATE);
}
 
  • Страница 1 из 1
  • 1
Поиск: