hlmod.hu
https://hlmod.hu/

SQL hiba
https://hlmod.hu/viewtopic.php?f=9&t=28872
Oldal: 1 / 1

Szerző:  Tomii [ 2018.03.25. 21:06 ]
Hozzászólás témája:  SQL hiba

Helló!

Táblát létrehozza, de nem menti el a dolgokat, javítható ?. (SZERKESZTVE)

Előre is köszönöm a válaszokat! :)

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

Szerző:  JohanCorn [ 2018.03.26. 08:54 ]
Hozzászólás témája:  Re: SQL hiba

Ha egy mezőben szeretnél tárolni minden értéket, akkor eleve szövegként kell kezelned és a betöltéskor tördelned. Ha meg külön-külön oszlopban (ajánlom), akkor meg annyit is kell létrehozni neki.

Szerző:  Tomii [ 2018.03.26. 16:18 ]
Hozzászólás témája:  Re: SQL hiba

JohanCorn írta:
Ha egy mezőben szeretnél tárolni minden értéket, akkor eleve szövegként kell kezelned és a betöltéskor tördelned. Ha meg külön-külön oszlopban (ajánlom), akkor meg annyit is kell létrehozni neki.


Szerkesztve, de még most is ugyan az, csatoltam az újat.

Szerző:  Dooz [ 2018.03.27. 14:04 ]
Hozzászólás témája:  Re: SQL hiba

Üdv. Cseréld le az "update" függvényedet erre:

  1. public update(id)
  2. {
  3.     new Query[512], Len;
  4.    
  5.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rivals_furien` SET ");
  6.     Len += formatex(Query[Len], charsmax(Query)-Len, "XP = %i, ",Xp[id]);
  7.     Len += formatex(Query[Len], charsmax(Query)-Len, "SZINT = %i, ",Szint[id]);
  8.     Len += formatex(Query[Len], charsmax(Query)-Len, "OLES = %i, ",Oles[id]);
  9.     Len += formatex(Query[Len], charsmax(Query)-Len, "PONT = %i ",Pont[id]);
  10.     Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE username  = ^"%s^";",name[id]);
  11.      
  12.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  13. }


Az hibásan volt megírva. Ez kicsit átláthatóbb. Ha továbbra sem müködik, akkor írd le ide, hogy mit ír a logba.

Szerző:  Tomii [ 2018.03.27. 17:03 ]
Hozzászólás témája:  Re: SQL hiba

Dooz írta:
Üdv. Cseréld le az "update" függvényedet erre:

  1. public update(id)
  2. {
  3.     new Query[512], Len;
  4.    
  5.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `rivals_furien` SET ");
  6.     Len += formatex(Query[Len], charsmax(Query)-Len, "XP = %i, ",Xp[id]);
  7.     Len += formatex(Query[Len], charsmax(Query)-Len, "SZINT = %i, ",Szint[id]);
  8.     Len += formatex(Query[Len], charsmax(Query)-Len, "OLES = %i, ",Oles[id]);
  9.     Len += formatex(Query[Len], charsmax(Query)-Len, "PONT = %i ",Pont[id]);
  10.     Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE username  = ^"%s^";",name[id]);
  11.      
  12.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  13. }


Az hibásan volt megírva. Ez kicsit átláthatóbb. Ha továbbra sem müködik, akkor írd le ide, hogy mit ír a logba.


Helló!

  1. L 03/27/2018 - 17:01:53: [MySQL] Invalid column: -1
  2. L 03/27/2018 - 17:01:53: [AMXX] Displaying debug trace (plugin "furien_menu.amxx")
  3. L 03/27/2018 - 17:01:53: [AMXX] Run time error 10: native error (native "SQL_ReadResult")
  4. L 03/27/2018 - 17:01:53: [AMXX]    [0] furien_menu.sma::QuerySelectData (line 305)

Szerző:  JohanCorn [ 2018.03.27. 19:13 ]
Hozzászólás témája:  Re: SQL hiba

Van egy oszlop aminek elírtad a nevét, vagy még csak hasonlót létre sem hoztál az adatbázisban.

Szerző:  Dooz [ 2018.03.27. 19:16 ]
Hozzászólás témája:  Re: SQL hiba

JohanCorn írta:
Van egy oszlop aminek elírtad a nevét, vagy még csak hasonlót létre sem hoztál az adatbázisban.

A táblával volt a gond, nem volt jól létrehozva, illetve egy-két parányi dolog a forrásban, de most müködik.

Szerző:  Tomii [ 2018.03.27. 19:17 ]
Hozzászólás témája:  Re: SQL hiba

Dooz írta:
JohanCorn írta:
Van egy oszlop aminek elírtad a nevét, vagy még csak hasonlót létre sem hoztál az adatbázisban.

A táblával volt a gond, nem volt jól létrehozva, illetve egy-két parányi dolog a forrásban, de most müködik.


Köszönöm még 1x :)

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