hlmod.hu
https://hlmod.hu/

sql mentés
https://hlmod.hu/viewtopic.php?f=9&t=23913
Oldal: 1 / 1

Szerző:  pixxa112 [ 2016.02.07. 22:22 ]
Hozzászólás témája:  sql mentés

Hali.

Ennél az sql mentésnél mi lehet a hiba, hogy nem menti el? (Nem nagyon értek a sqlhez).

  1. public plugin_cfg() {
  2.     new Query[512];
  3.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  4.  
  5.     formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `peace_paintball_s2` (`username` varchar(32) NOT NULL,`szint` int(11) NOT NULL, `tapasztalat` int(11) NOT NULL, `Oles` int(11) NOT NULL, `Rang` int(11) NOT NULL, `kesek` int(11) NOT NULL, `fegyverek` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  6.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  7. }
  8. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  9.     if(FailState == TQUERY_CONNECT_FAILED)
  10.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  11.     else if(FailState == TQUERY_QUERY_FAILED)
  12.         set_fail_state("Query Error");
  13.     if(Errcode)
  14.         log_amx("Hibat dobtam: %s",Error);
  15. }
  16. public client_putinserver(id) {
  17.     if(!is_user_bot(id)) {
  18.         get_user_name(id, nev[id], charsmax(nev))
  19.         load(id)
  20.     }
  21. }
  22. public load(id) {
  23.     new Query[512], Data[1]
  24.     Data[0] = id
  25.     formatex(Query, charsmax(Query), "SELECT * FROM `peace_paintball_s2` WHERE username = ^"%d^";", nev[id])
  26.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  27. }
  28.  
  29. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  30. if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  31. log_amx("%s", Error)
  32. return
  33. }
  34. else {
  35. new id = Data[0];
  36.  
  37. if(SQL_NumRows(Query) > 0) {
  38. szint[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "szint"))
  39. xp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "tapasztalat"))
  40. Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "oles"))
  41. Rang[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "rang"))
  42. kes_szam[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "kesek"))
  43. fegy_szam[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "fegyverek"))
  44. }
  45. else {
  46. save(id)
  47. }
  48. }
  49. }
  50.  
  51. public save(id) {
  52.     new text[512];
  53.     formatex(text, charsmax(text), "INSERT INTO `peace_paintball_s2` (`username`,  szint`, `tapasztalat`, `oles`, `rang`, `kesek`, `fegyverek`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");", nev[id])
  54.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  55. }
  56.  
  57. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  58.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  59.         log_amx("%s", Error)
  60.         return
  61.     }
  62. }
  63.  
  64. public update(id) {
  65.     new text[512];
  66.     formatex(text, charsmax(text), "UPDATE `peace_paintball_s2` SET szint = ^"%i^", tapasztalat = ^"%i^", oles = ^"%i^", rang = ^"%i^", kesek = ^"%i^", fegyverek = ^"%i^" WHERE username = ^"%s^";", szint[id], xp[id], Oles[id], Rang[id], kes_szam[id], fegy_szam[id], nev[id])
  67.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  68. }
  69.  
  70. public client_disconnect(id) {
  71.     if(!is_user_bot(id)) {
  72.         update(id)
  73.     }
  74.     szint[id] = 0
  75.     xp[id] = 0
  76.     Oles[id] = 0
  77.     Rang[id] = 0
  78.     kes_szam[id] = 0
  79.     fegy_szam[id] = 0
  80.     copy(nev[id], charsmax(nev[]), "")
  81. }
  82. public plugin_end() {
  83.     SQL_FreeHandle(g_SqlTuple)
  84. }

Szerző:  Anonymous1337 [ 2016.02.07. 22:39 ]
Hozzászólás témája:  Re: sql mentés

pixxa112 írta:
Hali.

Ennél az sql mentésnél mi lehet a hiba, hogy nem menti el? (Nem nagyon értek a sqlhez).



Try:

  1. public plugin_cfg() {
  2.     new Query[512];
  3.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  4.  
  5.     formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `peace_paintball_s2` (`username` varchar(32) NOT NULL,`szint` int(11) NOT NULL, `tapasztalat` int(11) NOT NULL, `Oles` int(11) NOT NULL, `Rang` int(11) NOT NULL, `kesek` int(11) NOT NULL, `fegyverek` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY")
  6.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  7. }
  8. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  9.     if(FailState == TQUERY_CONNECT_FAILED)
  10.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  11.     else if(FailState == TQUERY_QUERY_FAILED)
  12.         set_fail_state("Query Error");
  13.     if(Errcode)
  14.         log_amx("Hibat dobtam: %s",Error);
  15. }
  16. public client_putinserver(id) {
  17.     if(!is_user_bot(id)) {
  18.         get_user_name(id, nev[id], charsmax(nev))
  19.         load(id)
  20.     }
  21. }
  22. public load(id) {
  23.     new Query[512], Data[1]
  24.     Data[0] = id
  25.     formatex(Query, charsmax(Query), "SELECT * FROM `peace_paintball_s2` WHERE username = ^"%d^";", nev[id])
  26.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  27. }
  28.  
  29. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  30. if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  31. log_amx("%s", Error)
  32. return
  33. }
  34. else {
  35. new id = Data[0];
  36.  
  37. if(SQL_NumRows(Query) > 0) {
  38. szint[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "szint"))
  39. xp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "tapasztalat"))
  40. Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "oles"))
  41. Rang[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "rang"))
  42. kes_szam[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "kesek"))
  43. fegy_szam[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "fegyverek"))
  44. }
  45. else {
  46. save(id)
  47. }
  48. }
  49. }
  50.  
  51. public save(id) {
  52.     new text[512];
  53.     formatex(text, charsmax(text), "INSERT INTO `peace_paintball_s2` (`username`,  `szint`, `tapasztalat`, `oles`, `rang`, `kesek`, `fegyverek`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");", nev[id])
  54.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  55. }
  56.  
  57. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  58.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  59.         log_amx("%s", Error)
  60.         return
  61.     }
  62. }
  63.  
  64. public update(id) {
  65.     new text[512];
  66.     formatex(text, charsmax(text), "UPDATE `peace_paintball_s2` SET szint = ^"%i^", tapasztalat = ^"%i^", oles = ^"%i^", rang = ^"%i^", kesek = ^"%i^", fegyverek = ^"%i^" WHERE username = ^"%s^";", szint[id], xp[id], Oles[id], Rang[id], kes_szam[id], fegy_szam[id], nev[id])
  67.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  68. }
  69.  
  70. public client_disconnect(id) {
  71.     if(!is_user_bot(id)) {
  72.         update(id)
  73.     }
  74.     szint[id] = 0
  75.     xp[id] = 0
  76.     Oles[id] = 0
  77.     Rang[id] = 0
  78.     kes_szam[id] = 0
  79.     fegy_szam[id] = 0
  80.     copy(nev[id], charsmax(nev[]), "")
  81. }
  82. public plugin_end() {
  83.     SQL_FreeHandle(g_SqlTuple)
  84. }

Szerző:  pixxa112 [ 2016.02.07. 22:45 ]
Hozzászólás témája:  Re: sql mentés

Most valamiért nem csatlakozik az adatbázishoz :c

L 02/07/2016 - 22:43:46: [AMXX] Plugin ("paintball_menus.amxx") is setting itself as failed.
L 02/07/2016 - 22:43:46: [AMXX] Plugin says: Query Error
L 02/07/2016 - 22:43:46: [AMXX] Displaying debug trace (plugin "paintball_menus.amxx")
L 02/07/2016 - 22:43:46: [AMXX] Run time error 1: forced exit
L 02/07/2016 - 22:43:46: [AMXX] [0] Untitled.sma::createTableThread (line 110)

Szerző:  Anonymous1337 [ 2016.02.07. 22:47 ]
Hozzászólás témája:  Re: sql mentés

Most már jó lesz:

  1. public plugin_cfg() {
  2.     new Query[512];
  3.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  4.  
  5.     formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `peace_paintball_s2` (`username` varchar(32) NOT NULL,`szint` int(11) NOT NULL, `tapasztalat` int(11) NOT NULL, `Oles` int(11) NOT NULL, `Rang` int(11) NOT NULL, `kesek` int(11) NOT NULL, `fegyverek` int(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  6.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  7. }
  8. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  9.     if(FailState == TQUERY_CONNECT_FAILED)
  10.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  11.     else if(FailState == TQUERY_QUERY_FAILED)
  12.         set_fail_state("Query Error");
  13.     if(Errcode)
  14.         log_amx("Hibat dobtam: %s",Error);
  15. }
  16. public client_putinserver(id) {
  17.     if(!is_user_bot(id)) {
  18.         get_user_name(id, nev[id], charsmax(nev))
  19.         load(id)
  20.     }
  21. }
  22. public load(id) {
  23.     new Query[512], Data[1]
  24.     Data[0] = id
  25.     formatex(Query, charsmax(Query), "SELECT * FROM `peace_paintball_s2` WHERE username = ^"%d^";", nev[id])
  26.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  27. }
  28.  
  29. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  30. if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  31. log_amx("%s", Error)
  32. return
  33. }
  34. else {
  35. new id = Data[0];
  36.  
  37. if(SQL_NumRows(Query) > 0) {
  38. szint[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "szint"))
  39. xp[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "tapasztalat"))
  40. Oles[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "oles"))
  41. Rang[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "rang"))
  42. kes_szam[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "kesek"))
  43. fegy_szam[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "fegyverek"))
  44. }
  45. else {
  46. save(id)
  47. }
  48. }
  49. }
  50.  
  51. public save(id) {
  52.     new text[512];
  53.     formatex(text, charsmax(text), "INSERT INTO `peace_paintball_s2` (`username`,  `szint`, `tapasztalat`, `oles`, `rang`, `kesek`, `fegyverek`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");", nev[id])
  54.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  55. }
  56.  
  57. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  58.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  59.         log_amx("%s", Error)
  60.         return
  61.     }
  62. }
  63.  
  64. public update(id) {
  65.     new text[512];
  66.     formatex(text, charsmax(text), "UPDATE `peace_paintball_s2` SET szint = ^"%i^", tapasztalat = ^"%i^", oles = ^"%i^", rang = ^"%i^", kesek = ^"%i^", fegyverek = ^"%i^" WHERE username = ^"%s^";", szint[id], xp[id], Oles[id], Rang[id], kes_szam[id], fegy_szam[id], nev[id])
  67.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  68. }
  69.  
  70. public client_disconnect(id) {
  71.     if(!is_user_bot(id)) {
  72.         update(id)
  73.     }
  74.     szint[id] = 0
  75.     xp[id] = 0
  76.     Oles[id] = 0
  77.     Rang[id] = 0
  78.     kes_szam[id] = 0
  79.     fegy_szam[id] = 0
  80.     copy(nev[id], charsmax(nev[]), "")
  81. }
  82. public plugin_end() {
  83.     SQL_FreeHandle(g_SqlTuple)
  84. }

Szerző:  pixxa112 [ 2016.02.07. 22:56 ]
Hozzászólás témája:  Re: sql mentés

Most csatlakozik az adatbázishoz, minden jó csak megint a mentés nem jó.
Egyszerűen nem ment el semmit.

Amikor egy játékos fent van a szerveren, akkor normálisan írja, hogy pl:

szint: 3 | tapasztalat: 85% stb..
Amint pálya váltás van, ugyan úgy megmarad de létre hozz megint egy táblát, csak ott már mindent nullára írt át..

Kép

Szerző:  demon [ 2016.02.08. 21:54 ]
Hozzászólás témája:  Re: sql mentés

%d helyett %s. (25. sor)
formatex(Query, charsmax(Query), "SELECT * FROM `peace_paintball_s2` WHERE username = ^"%d^";", nev[id])
Illetve a mentésnél (53. sor):
  1. formatex(text, charsmax(text), "INSERT INTO `peace_paintball_s2` (`username`,  `szint`, `tapasztalat`, `oles`, `rang`, `kesek`, `fegyverek`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");", nev[id])

-->
  1. formatex(text, charsmax(text), "INSERT INTO `peace_paintball_s2` (`username`,  `szint`, `tapasztalat`, `oles`, `rang`, `kesek`, `fegyverek`) VALUES (^"%s^", ^"%i^", ^"%i^", ^"%i^", ^"%i^", ^"%i^", ^"%i^");", nev[id], szint[id], xp[id], Oles[id], Rang[id], kes_szam[id], fegy_szam[id])

Szerző:  pixxa112 [ 2016.02.09. 14:28 ]
Hozzászólás témája:  Re: sql mentés

demon írta:
%d helyett %s. (25. sor)
formatex(Query, charsmax(Query), "SELECT * FROM `peace_paintball_s2` WHERE username = ^"%d^";", nev[id])
Illetve a mentésnél (53. sor):
  1. formatex(text, charsmax(text), "INSERT INTO `peace_paintball_s2` (`username`,  `szint`, `tapasztalat`, `oles`, `rang`, `kesek`, `fegyverek`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^", ^"0^");", nev[id])

-->
  1. formatex(text, charsmax(text), "INSERT INTO `peace_paintball_s2` (`username`,  `szint`, `tapasztalat`, `oles`, `rang`, `kesek`, `fegyverek`) VALUES (^"%s^", ^"%i^", ^"%i^", ^"%i^", ^"%i^", ^"%i^", ^"%i^");", nev[id], szint[id], xp[id], Oles[id], Rang[id], kes_szam[id], fegy_szam[id])



Köszönöm, minden tökéletesen működik! :)

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/