public ZapiszExp(id) { new commands[512], name[48] get_user_name(id, name, 47); replace_all(name, 47, "'", "\'"); formatex(commands, 511, "UPDATE `ExpMod` SET `Nick` = `%s', `Exp` = '%d', `Lvl` = '%d', `Points` = '%d', `Upoints` = '%d', `HP` = '%d', `NHP` = '%d', `INVISIBLE` = '%d', `NINVISIBLE` = '%d', `DMG` = '%d', `NDMG` = '%d', `SPEED` = '%d', `NSPEED` = '%d', `GRAV` = '%d', `NGRAV` = '%d', `MONEY` = '%d', `NMONEY` = '%d', `JUMPS` = '%d', `NJUMPS` = '%d', `LONG` = '%d', `NLONG` = '%d', `SLONG` = '%d', `MONETS` = '%d' WHERE Nick = '%s'", name, doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id],ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id],nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]),kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id], name); SQL_ThreadQuery(sql, "ZapiszExpHandle", commands);Problem w tym, że nie updatuje w ogóle danych. Gdy dałem INSERT INTO zamiast tego update ( i tam pozmienialem kod ) to zamiast ciagle i na tym samym kluczu robić to tworzyło nowy.
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.
|
[ROZWIĄZANE] SQL problem z updatowaniem
Najlepsza odpowiedź sebul, 17.04.2013 15:59
Błąd na pewno masz tutaj
`Nick` = `%s'powinno być
`Nick` = '%s'Reszty nie sprawdzałem, ale możliwe, że tablica jest za mała do tego polecenia, dlatego zalecałbym unikać spacji tam gdzie się da, czyli chociażby pisać tak
`Nick`='%s'do tego tam gdzie masz liczbę, pisz tak
`Exp`=%dwtedy zyskasz sporo miejsca i będziesz mógł wykonywać dłuższe zapytania. Przejdź do postu
#1
Napisano 17.04.2013 15:39
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#2
Napisano 17.04.2013 15:59 Najlepsza odpowiedź
`Nick` = `%s'powinno być
`Nick` = '%s'Reszty nie sprawdzałem, ale możliwe, że tablica jest za mała do tego polecenia, dlatego zalecałbym unikać spacji tam gdzie się da, czyli chociażby pisać tak
`Nick`='%s'do tego tam gdzie masz liczbę, pisz tak
`Exp`=%dwtedy zyskasz sporo miejsca i będziesz mógł wykonywać dłuższe zapytania.
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#3
Napisano 17.04.2013 16:02
Sprawdź tak
public ZapiszDane(id) { new szBuffer[1][512]; formatex(szBuffer[0], charsmax(szBuffer[]), "UPDATE ExpMod SET Exp=i%, Lvl=i%, Points=i%, Upoints=i%, HP=i%, NHP=i%, INVISIBLE=%i, NINVISIBLE=i%, DMG=i%, NDMG=i%, SPEED=i%, NSPEED=i%, GRAV=i%, NGRAV=i%, MONEY=i%, NMONEY=i%, JUMPS=i%, NJUMPS=i%, LONG=i%, NLONG=i%, SLONG=i%, MONETS=i% WHERE Nick=^"%s^", doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id],ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id],nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]),kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id], name); SQL_ThreadQuery(sql, "ZapiszExpHandle", szBuffer[0]); }
#4
Napisano 17.04.2013 16:06
Właśnie i% trochę dziwne
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#6
Napisano 17.04.2013 16:09
Zapisuje Ci i% czy %i ? Jak i% to po co mi podałeś ? ( sprawdzam )
edit:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team Error: Invalid string (possibly non-terminated string) on line 1984 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Warning: Expression has no effect on line 1985 Error: Expected token: ";", but found ")" on line 1987 Error: Invalid expression, assumed zero on line 1987 Warning: Expression has no effect on line 1987 3 Errors. Could not locate output file C:\Users\STRIKER\Desktop\expmod.amx (compile failed).nie bd mówić co gdyż na oko widziałem błędy, ale warto spróbowąć teraz sebul
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#7
Napisano 17.04.2013 16:11
oj tam sebul pisałem to na szybko i nie zwróciłem uwagi na kolejnośc poprawnie powinno być tak:
public ZapiszDane(id) { new szBuffer[1][512]; formatex(szBuffer[0], charsmax(szBuffer[]), "UPDATE ExpMod SET Exp=%i, Lvl=%i, Points=%i, Upoints=%i, HP=%i, NHP=%i, INVISIBLE=%i, NINVISIBLE=%i, DMG=%i, NDMG=%i, SPEED=%i, NSPEED=%i, GRAV=%i, NGRAV=%i, MONEY=%i, NMONEY=%i, JUMPS=%i, NJUMPS=%i, LONG=%i, NLONG=%i, SLONG=%i, MONETS=%i WHERE Nick=^"%s^", doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id],ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id],nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]),kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id], name); SQL_ThreadQuery(sql, "ZapiszExpHandle", szBuffer[0]); }
#8
Napisano 17.04.2013 16:16
^"%s^",To jest na końcu. Lecz nie ma cudzysłowia zamykającego ten format. nie wiem czy taki masz zamiar czy co
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
#9
Napisano 17.04.2013 16:18
Lecz zwróć uwage na to
^"%s^",To jest na końcu. Lecz nie ma cudzysłowia zamykającego ten format. nie wiem czy taki masz zamiar czy co
powinny być dwa "" ale jak widać jeden zjadłem
public ZapiszDane(id) { new szBuffer[1][512]; formatex(szBuffer[0], charsmax(szBuffer[]), "UPDATE ExpMod SET Exp=%i, Lvl=%i, Points=%i, Upoints=%i, HP=%i, NHP=%i, INVISIBLE=%i, NINVISIBLE=%i, DMG=%i, NDMG=%i, SPEED=%i, NSPEED=%i, GRAV=%i, NGRAV=%i, MONEY=%i, NMONEY=%i, JUMPS=%i, NJUMPS=%i, LONG=%i, NLONG=%i, SLONG=%i, MONETS=%i WHERE Nick=^"%s^"", doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id],ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id],nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]),kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id], name); SQL_ThreadQuery(sql, "ZapiszExpHandle", szBuffer[0]); }
#10
Napisano 17.04.2013 16:20
Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych