hlmod.hu
https://hlmod.hu/

MySQL Mentés.
https://hlmod.hu/viewtopic.php?f=9&t=21736
Oldal: 1 / 1

Szerző:  V!RUSHĐ [ 2015.07.27. 23:33 ]
Hozzászólás témája:  MySQL Mentés.

Helló.Ezt valaki javítaná?

SMA Forráskód: [ Mindet kijelol ]
  1. public MySql_Init()
  2. {
  3. g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
  4. new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
  5. if(SqlConnection == Empty_Handle)
  6. set_fail_state(g_Error)
  7. new Handle:Queries
  8. Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS mentes (nev varchar(32),arany INT(11), kill INT(11), szint INT(11), fegyver1 INT(11), fegyver2 INT(11), fegyver3 INT(11), fegyver4 INT(11), fegyver5 INT(11), fegyver6 INT(11), fegyver7 INT(11), fegyver8 INT(11), fegyver9 INT(11), fegyver10 INT(11))") //létrehozzuk a pontrendszer táblát név és pont sorokkal
  9.  
  10. if(!SQL_Execute(Queries))
  11. {
  12. SQL_QueryError(Queries,g_Error,charsmax(g_Error))
  13. set_fail_state(g_Error)
  14. }
  15. SQL_FreeHandle(Queries)
  16. SQL_FreeHandle(SqlConnection)
  17. }
  18. public plugin_end()
  19. {
  20. SQL_FreeHandle(g_SqlTuple)
  21. }
  22. public betoltes(id)
  23. {
  24. new szNev[32], szTemp[512]
  25. get_user_name(id, szNev, charsmax(szNev))
  26.  
  27. new Data[1]
  28. Data[0] = id
  29. format(szTemp,charsmax(szTemp),"SELECT * FROM `mentes` WHERE (`mentes`.`nev` = '%s')", szNev)
  30. SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
  31. }
  32. public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  33. {
  34. if(FailState == TQUERY_CONNECT_FAILED)
  35. {
  36. log_amx("Kapcsolodas sikertelen. [%d] %s", Errcode, Error)
  37. }
  38. else if(FailState == TQUERY_QUERY_FAILED)
  39. {
  40. log_amx("A QUERY betoltese sikertelen.[%d] %s", Errcode, Error)
  41. }
  42.  
  43. new id
  44. id = Data[0]
  45.  
  46. if(SQL_NumResults(Query) < 1)
  47. {
  48.  
  49. new szNev[32]
  50. get_user_name(id, szNev, charsmax(szNev))
  51.  
  52. new szTemp[1024]
  53.  
  54. format(szTemp,charsmax(szTemp),"INSERT INTO `mentes` ( `nev` , `arany` , `kill` , `szint` , `fegyver1` , `fegyver2` , `fegyver3` , `fegyver4` , `fegyver5` , `fegyver6` , `fegyver7` , `fegyver8` , `fegyver9` , `fegyver10`)VALUES ('%s','0','0','0','0','0','0','0','0','0','0','0','0','0');",szNev)
  55. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  56. }
  57. else
  58. {
  59. Gold[id] = SQL_ReadResult(Query, 1)
  60. Kill[id] = SQL_ReadResult(Query, 2)
  61. Szint[id] = SQL_ReadResult(Query, 3)
  62. GoSkins[0][id] = SQL_ReadResult(Query, 4)
  63. GoSkins[1][id] = SQL_ReadResult(Query, 5)
  64. GoSkins[2][id] = SQL_ReadResult(Query, 6)
  65. GoSkins[3][id] = SQL_ReadResult(Query, 7)
  66. GoSkins[4][id] = SQL_ReadResult(Query, 8)
  67. GoSkins[5][id] = SQL_ReadResult(Query, 9)
  68. GoSkins[6][id] = SQL_ReadResult(Query, 10)
  69. GoSkins[7][id] = SQL_ReadResult(Query, 11)
  70. GoSkins[8][id] = SQL_ReadResult(Query, 12)
  71. GoSkins[9][id] = SQL_ReadResult(Query, 13)
  72. }
  73.  
  74. return PLUGIN_HANDLED
  75. }
  76. public mentes(id)
  77. {
  78. new szNev[32], szTemp[1024]
  79. get_user_name(id, szNev, charsmax(szNev))
  80.  
  81. format(szTemp,charsmax(szTemp),"UPDATE `mentes` SET `arany`, `kill`, `szint`, `fegyver1`, `fegyver2`, `fegyver3`, `fegyver4`, `fegyver5`, `fegyver6`, `fegyver7`, `fegyver8`, `fegyver9`, `fegyver10` = '%i' WHERE `mentes`.`nev` = '%s';",Gold[id], Kill[id], Szint[id], GoSkins[0][id], GoSkins[1][id], GoSkins[2][id], GoSkins[3][id], GoSkins[4][id], GoSkins[5][id], GoSkins[6][id], GoSkins[7][id], GoSkins[8][id], GoSkins[9][id], szNev)
  82. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  83. }
  84. public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  85. {
  86. SQL_FreeHandle(Query)
  87.  
  88. return PLUGIN_HANDLED
  89. }


Szerver indításnál ezt a hibát dobja:
Kód:
L 07/27/2015 - 23:16:18: [AMXX] Plugin ("globaloffensive.amxx") is setting itself as failed.
L 07/27/2015 - 23:16:18: [AMXX] Plugin says: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'kill INT(11), szint INT(11), fegyver1 INT(11), fegyver2 INT(11), fegyver3 INT(11' at line 1
L 07/27/2015 - 23:16:18: [AMXX] Displaying debug trace (plugin "globaloffensive.amxx")
L 07/27/2015 - 23:16:18: [AMXX] Run time error 1: forced exit
L 07/27/2015 - 23:16:18: [AMXX]    [0] globaloffensive.sma::MySql_Init (line 293)

Szerző:  JoZsi [ 2015.07.28. 05:06 ]
Hozzászólás témája:  Re: MySQL Mentés.

Csatlakozik egyáltalán a MySQL adatbázishoz a Plug-In?

Szerző:  CrB [ 2015.07.28. 07:46 ]
Hozzászólás témája:  Re: MySQL Mentés.

JoZsi írta:
Csatlakozik egyáltalán a MySQL adatbázishoz a Plug-In?

Mivel a hibaüzenet azt tartalmazza, hogy nem tudja létrehozni a táblákat így nyilván csatlakozik.. mielőtt kérdéssel felelsz egy kérdésre nézd meg pontosabban a hibaüzenetet :D

A hiba a következő:

kill INT(11) a kill egy mysql command ezért annak is érzékeli az sql. 2 megoldás van vagy lecseréled a nevét vagy ` jelek közé rakod. Én a 2. megoldást választottam tessék:
SMA Forráskód: [ Mindet kijelol ]
  1. public MySql_Init()
  2. {
  3. g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
  4. new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
  5. if(SqlConnection == Empty_Handle)
  6. set_fail_state(g_Error)
  7.  
  8. new Handle:Queries
  9. Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS mentes (nev varchar(32),arany INT(11), `kill` INT(11), szint INT(11), fegyver1 INT(11), fegyver2 INT(11), fegyver3 INT(11), fegyver4 INT(11), fegyver5 INT(11), fegyver6 INT(11), fegyver7 INT(11), fegyver8 INT(11), fegyver9 INT(11), fegyver10 INT(11))") //létrehozzuk a pontrendszer táblát név és pont sorokkal
  10.  
  11. if(!SQL_Execute(Queries))
  12. {
  13. SQL_QueryError(Queries,g_Error,charsmax(g_Error))
  14. set_fail_state(g_Error)
  15. }
  16. SQL_FreeHandle(Queries)
  17. SQL_FreeHandle(SqlConnection)
  18. }
  19. public plugin_end()
  20. {
  21. SQL_FreeHandle(g_SqlTuple)
  22. }
  23. public betoltes(id)
  24. {
  25. new szNev[32], szTemp[512]
  26. get_user_name(id, szNev, charsmax(szNev))
  27.  
  28. new Data[1]
  29. Data[0] = id
  30. format(szTemp,charsmax(szTemp),"SELECT * FROM `mentes` WHERE (`mentes`.`nev` = '%s')", szNev)
  31. SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
  32. }
  33. public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  34. {
  35. if(FailState == TQUERY_CONNECT_FAILED)
  36. {
  37. log_amx("Kapcsolodas sikertelen. [%d] %s", Errcode, Error)
  38. }
  39. else if(FailState == TQUERY_QUERY_FAILED)
  40. {
  41. log_amx("A QUERY betoltese sikertelen.[%d] %s", Errcode, Error)
  42. }
  43.  
  44. new id
  45. id = Data[0]
  46.  
  47. if(SQL_NumResults(Query) < 1)
  48. {
  49.  
  50. new szNev[32]
  51. get_user_name(id, szNev, charsmax(szNev))
  52.  
  53. new szTemp[1024]
  54.  
  55. format(szTemp,charsmax(szTemp),"INSERT INTO `mentes` ( `nev` , `arany` , `kill` , `szint` , `fegyver1` , `fegyver2` , `fegyver3` , `fegyver4` , `fegyver5` , `fegyver6` , `fegyver7` , `fegyver8` , `fegyver9` , `fegyver10`)VALUES ('%s','0','0','0','0','0','0','0','0','0','0','0','0','0');",szNev)
  56. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  57. }
  58. else
  59. {
  60. Gold[id] = SQL_ReadResult(Query, 1)
  61. Kill[id] = SQL_ReadResult(Query, 2)
  62. Szint[id] = SQL_ReadResult(Query, 3)
  63. GoSkins[0][id] = SQL_ReadResult(Query, 4)
  64. GoSkins[1][id] = SQL_ReadResult(Query, 5)
  65. GoSkins[2][id] = SQL_ReadResult(Query, 6)
  66. GoSkins[3][id] = SQL_ReadResult(Query, 7)
  67. GoSkins[4][id] = SQL_ReadResult(Query, 8)
  68. GoSkins[5][id] = SQL_ReadResult(Query, 9)
  69. GoSkins[6][id] = SQL_ReadResult(Query, 10)
  70. GoSkins[7][id] = SQL_ReadResult(Query, 11)
  71. GoSkins[8][id] = SQL_ReadResult(Query, 12)
  72. GoSkins[9][id] = SQL_ReadResult(Query, 13)
  73. }
  74.  
  75. return PLUGIN_HANDLED
  76. }
  77. public mentes(id)
  78. {
  79. new szNev[32], szTemp[1024]
  80. get_user_name(id, szNev, charsmax(szNev))
  81.  
  82. format(szTemp,charsmax(szTemp),"UPDATE `mentes` SET `arany`, `kill`, `szint`, `fegyver1`, `fegyver2`, `fegyver3`, `fegyver4`, `fegyver5`, `fegyver6`, `fegyver7`, `fegyver8`, `fegyver9`, `fegyver10` = '%i' WHERE `mentes`.`nev` = '%s';",Gold[id], Kill[id], Szint[id], GoSkins[0][id], GoSkins[1][id], GoSkins[2][id], GoSkins[3][id], GoSkins[4][id], GoSkins[5][id], GoSkins[6][id], GoSkins[7][id], GoSkins[8][id], GoSkins[9][id], szNev)
  83. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  84. }
  85. public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  86. {
  87. SQL_FreeHandle(Query)
  88.  
  89. return PLUGIN_HANDLED
  90. }

Egy tipp:

Ha olyan hibaüzenetet kapsz mint ez is ami a syntax ra panaszkodik akkor érdemes phpmyadminban is lefuttatni a query-t mert ott kiemeli a hibás részt.

Szerző:  V!RUSHĐ [ 2015.07.28. 11:22 ]
Hozzászólás témája:  Re: MySQL Mentés.

Köszi.Most már csak annyi gond van vele, hogy nem akarja elmenteni a cuccaimat.Be addolok magamnak cuccot és nem menti el.
Csatolmány:
névtelen.JPG
névtelen.JPG [ 129.74 KiB | Megtekintve 2559 alkalommal ]


Szerk:
Próbáltam így:
SMA Forráskód: [ Mindet kijelol ]
  1. public mentes(id)
  2. {
  3. new szNev[32], szTemp[1024]
  4. get_user_name(id, szNev, charsmax(szNev))
  5.  
  6. format(szTemp,charsmax(szTemp),"UPDATE `mentes` SET `arany` = '%i', `oles` = '%i', `szint` = '%i',\
  7. `fegyver1` = '%i', `fegyver2` = '%i', `fegyver3` = '%i', `fegyver4` = '%i', `fegyver5` = '%i',\
  8. `fegyver6` = '%i', `fegyver7` = '%i', `fegyver8` = '%i', `fegyver9` = '%i', `fegyver10` = '%i'\
  9. WHERE `mentes`.`nev` = '%s';",Gold[id], Kill[id], Szint[id], GoSkins[0][id], GoSkins[1][id], GoSkins[2][id],\
  10. GoSkins[3][id], GoSkins[4][id], GoSkins[5][id], GoSkins[6][id], GoSkins[7][id], GoSkins[8][id],\
  11. GoSkins[9][id], szNev)
  12. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  13. }

Most ezzel van gondja:
SMA Forráskód: [ Mindet kijelol ]
  1. get_user_name(id, szNev, charsmax(szNev))


Kód:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Input line too long (after substitutions) on line 358

1 Error.
Could not locate output file D:\Scripting\globaloffensive.amx (compile failed).

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