Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[SQL] Wszystkie Rekordy są dla jednego gracza...


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 AmD

    aemde

  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 03.01.2011 23:19

Witam!


Znów mam problem z SQL, mianowicie każdy rekord jaki jest w bazie jest na jednego gracza...

Powiedzmy że jest gracz #Jeden i #Dwa (jak na tym ss)
Dołączona grafika
Powiedzmy że teraz Gracz #Jeden wychodzi z serwera to wszystkie rekordy zamieniają się na jego Nick (wartości tablic też są zmieniane na te same)...
Dołączona grafika

Testuje z zapisem na nick, bo sprawdzić czy działa...
Chwilowe próby naprawy nie pomogły...

błąd tkwi zapewne gdzieś w tym kodzie:


public handle_load(FailState,Handle:Query,Error[],Errcode,Data[],DataSize){
if(FailState){
log_amx("SQL Error: %s (%d)", Error, Errcode)
return PLUGIN_HANDLED
}
new id = Data[0]
new PlayerName[32], args[32], cache[1024],pos
//new data[1]
read_args(args, 31)
remove_quotes(args)
get_user_name(id,PlayerName,charsmax(PlayerName));

/*if(!is_user_steam(id)){
get_user_name(id,PlayerName,charsmax(PlayerName));
}
else
{
get_user_authid(id,PlayerName,charsmax(PlayerName));
}*/
if(SQL_NumResults(Query) < 1)
{
pos = formatex(cache, 1023, "INSERT INTO `fbh_xp` (sid, xp, lvl, sptk, pgraw, pspeed, pfuria, pfizyk, pczar, pnc, fbhy, gz, lpm, s_prz, lpmt_os, s_lvl, s_graw, s_speed, lpmtos, os_scout, os_scout_s) VALUES (");
pos += formatex(cache[pos], 1023 - pos, "'%s', '0', '0', '0', '0', '0', '0', '0', '0', '0',", PlayerName); //, PlayerXP[id], PlayerLevel[id], SkillPoints[id], PtkGraw[id], PtkSpeed[id], PtkFuria[id], PtkFizyk[id], PtkCzar[id], PtkNc[id]
pos += formatex(cache[pos], 1023 - pos, " '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');"); //, marzenia[id], gratz[id], lpm[id], sprawdz_przejsca[id], lpmt_os[id], sprawdz_level[id], sprawdz_graw[id], sprawdz_speed[id], lpmtOS[id], os_scout[id], os_scout_s[id]
log_to_file(sql_save, "Tworze Nowego Uzytkownika: %s", cache)
SQL_ThreadQuery(g_SqlTuple, "handle_save", cache)

return PLUGIN_HANDLED
}
else
{

PlayerXP[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"xp"))
PlayerLevel[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"lvl"))

SkillPoints[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "sptk"))
PtkGraw[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pgraw"))
PtkSpeed[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pspeed"))
PtkFuria[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pfuria"))
PtkFizyk[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pfizyk"))
PtkCzar[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pczar"))
PtkNc[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pnc"))
marzenia[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "fbhy"))
gratz[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "gz"))
lpm[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lpm"))
sprawdz_przejsca[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_prz"))
lpmt_os[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lpmt_os"))
sprawdz_level[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_lvl"))
sprawdz_graw[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_graw"))
sprawdz_speed[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "s_speed"))
lpmtOS[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lpmtos"))
os_scout[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "os_scout"))
os_scout_s[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "os_scout_s"))


//SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"authid"), steamid, 31)
new name[32]
get_user_name(id, name, 31)
log_to_file(sql_load, "Dane gracza ^"%s^" zostaly wczytane", name)

return PLUGIN_HANDLED
}
/*else{
log_to_file(sql_save, "Brak Danych O Graczu ....")
}*/
return PLUGIN_HANDLED
}

Ja nie wiem gdzie, jeśli wiecie pomóżcie :)

Pozdrawiam!

Użytkownik AmD edytował ten post 03.01.2011 23:21

  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 04.01.2011 10:38

pewnie nie masz WHERE w UPDATE,inserty nie zmieniają zawartości innych pół (wątpie, że zrobiłeś trigger :P)
  • +
  • -
  • 1

#3 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 04.01.2011 17:29

Hmm... w Update nie mam rzeczywiście

Mam tak:

pos = formatex(cache, 1023, "UPDATE `fbh_xp` SET sid = '%s', xp = '%d', lvl = '%d', sptk = '%d', pgraw = '%d', pspeed = '%d', pfuria = '%d', pfizyk = '%d', pczar = '%d',",PlayerName, PlayerXP[id], PlayerLevel[id], SkillPoints[id], PtkGraw[id], PtkSpeed[id], PtkFuria[id], PtkFizyk[id], PtkCzar[id])
pos += formatex(cache[pos], 1023 - pos, " pnc = '%d', fbhy = '%d', gz = '%d', lpm = '%d', s_prz = '%d', lpmt_os = '%d', s_lvl = '%d', s_graw = '%d', s_speed = '%d', lpmtos = '%d', os_scout = '%d', os_scout_s = '%d'", PtkNc[id], marzenia[id], gratz[id], lpm[id], sprawdz_przejsca[id], lpmt_os[id], sprawdz_level[id], sprawdz_graw[id], sprawdz_speed[id], lpmtOS[id], os_scout[id], os_scout_s[id]);

a mam mieć tak:

pos = formatex(cache, 1023, "UPDATE `fbh_xp` SET xp = '%d', lvl = '%d', sptk = '%d', pgraw = '%d', pspeed = '%d', pfuria = '%d', pfizyk = '%d', pczar = '%d',", PlayerXP[id], PlayerLevel[id], SkillPoints[id], PtkGraw[id], PtkSpeed[id], PtkFuria[id], PtkFizyk[id], PtkCzar[id])
pos += formatex(cache[pos], 1023 - pos, " pnc = '%d', fbhy = '%d', gz = '%d', lpm = '%d', s_prz = '%d', lpmt_os = '%d', s_lvl = '%d', s_graw = '%d', s_speed = '%d', lpmtos = '%d', os_scout = '%d', os_scout_s = '%d' WHERE sid = '%s'", PtkNc[id], marzenia[id], gratz[id], lpm[id], sprawdz_przejsca[id], lpmt_os[id], sprawdz_level[id], sprawdz_graw[id], sprawdz_speed[id], lpmtOS[id], os_scout[id], os_scout_s[id], PlayerName);

??

Użytkownik AmD edytował ten post 04.01.2011 17:29

  • +
  • -
  • 0

#4 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 04.01.2011 17:40

Tak.
  • +
  • -
  • 1

serwer-1.png
IP: ts3.cserwerek.pl


#5 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 04.01.2011 17:58

ok dzięki można close ;)
  • +
  • -
  • 0

#6 Adminek AMXX.PL

    Admin :)

  • Bot

Reputacja: 156
Profesjonalista

  • Postów:7 476
  • Lokalizacja:AMXX.PL
Offline

Napisano 04.01.2011 18:40

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Proszę bardzo.

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych