hlmod.hu
https://hlmod.hu/

Sql SQL syntax
https://hlmod.hu/viewtopic.php?f=10&t=30845
Oldal: 1 / 1

Szerző:  konfigos312 [ 2021.01.11. 23:09 ]
Hozzászólás témája:  Sql SQL syntax

Sziasztok.
Lenne egy olyan problémám hogy meg van csinálva hogy külön táblába mentsen a reg meg az adatok.
És az lenne a problémám hogy a második tábla szépen meg csinálja a reg általi id re az értlket de updétnél ezt dobja ki.
Tehát a felhasználóó id-t le generálja csak a változót nem menti le.

  1. public sql_account_load_server(id)
  2. {
  3.     new szQuery[2048]
  4.     new len = 0
  5.    
  6.     new a[191]
  7.    
  8.     format(a, 190, "%s", g_Felhasznalonev[id])
  9.  
  10.     replace_all(a, 190, "\", "\\")
  11.     replace_all(a, 190, "'", "\'")
  12.    
  13.     len += format(szQuery[len], 2048, "SELECT * FROM game_mod ")
  14.     len += format(szQuery[len], 2048-len,"WHERE Id = '%d'", g_Id[id]);
  15.    
  16.     new szData[2];
  17.     szData[0] = id;
  18.     szData[1] = get_user_userid(id);
  19.  
  20.     SQL_ThreadQuery(g_SqlTuple,"sql_account_load_server_thread", szQuery, szData, 2)
  21. }
  22. public sql_account_load_server_thread(FailState,Handle:Query,Error[],Errcode,szData[],DataSize) {
  23.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
  24.     {
  25.         log_amx("%s", Error)
  26.         return
  27.     }
  28.     else
  29.     {
  30.         new id = szData[0];
  31.        
  32.         if (szData[1] != get_user_userid(id))
  33.             return ;
  34.            
  35.         if(SQL_NumRows(Query)){
  36.            
  37.             Usd[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Dollars"));
  38.  
  39.         }
  40.         else
  41.             sql_account_load_server_row(id);
  42.        
  43.     }
  44. }
  45. public sql_account_load_server_row(id){
  46.     new Query[512]
  47.     formatex(Query, charsmax(Query), "INSERT INTO `game_mod` (`Id`) VALUES (%d);", g_Id[id]);
  48.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  49. }
  50. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime){
  51.     if( FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED )
  52.     {
  53.         log_amx("%s", Error);
  54.         return;
  55.     }
  56. }
  57. public sql_account_load_server_update(id)
  58. {
  59.     static Query[10048];
  60.     new Len;
  61.    
  62.     Len += formatex(Query[Len], charsmax(Query), "UPDATE `game_mod` SET ");
  63.    
  64.     Len += formatex(Query[Len], charsmax(Query), "Dollars = '%d', ",Usd[id]);
  65.  
  66.  
  67.     //Len += format(Query[Len], charsmax(Query)-Len,"Parameter = '0' ")
  68.     Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE `Id` =  %d;", g_Id[id]);   
  69.    
  70.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
  71.     //sql_update_account1(id);
  72. }


  1. CREATE TABLE `game_mod` (
  2.   `Id` INT(11) NOT NULL,
  3.   `Dollars` INT(11) NOT NULL
  4. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  5.  
  6. --
  7. -- A tábla adatainak kiíratása `game_mod`
  8. --
  9.  
  10. INSERT INTO `game_mod` (`Id`, `Dollars`) VALUES
  11. (1, 0),
  12. (17, 0),
  13. (18, 0),
  14. (35, 0),
  15. (36, 0);


Kód:
L 01/11/2021 - 23:02:33: [regv1.amxx] 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 'WHERE `Id` =  1' at line 1

Üdv köszi.

Szerző:  HellEnergY [ 2021.01.11. 23:25 ]
Hozzászólás témája:  Re: Sql SQL syntax

konfigos312 írta:
Sziasztok.
Lenne egy olyan problémám hogy meg van csinálva hogy külön táblába mentsen a reg meg az adatok.
És az lenne a problémám hogy a második tábla szépen meg csinálja a reg általi id re az értlket de updétnél ezt dobja ki.
Tehát a felhasználóó id-t le generálja csak a változót nem menti le.

Üdv köszi.



  1. Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE `Id` =  %d;", g_Id[id]);
  2. -->
  3. Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE Id = `%d`;", g_Id[id]);
  4. vagy
  5. Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE Id = '%d';", g_Id[id]);


Ígyis lehet(de akkor töröld ki ezt: Len += formatex(Query[Len], charsmax(Query), "Dollars = '%d', ",Usd[id]);):
  1. Len += formatex(Query[Len], charsmax(Query)-Len, "Dollars = '%d' WHERE Id = '%d';", Usd[id], g_Id[id]);

Szerző:  konfigos312 [ 2021.01.11. 23:35 ]
Hozzászólás témája:  Re: Sql SQL syntax

HellEnergY írta:
konfigos312 írta:
Sziasztok.
Lenne egy olyan problémám hogy meg van csinálva hogy külön táblába mentsen a reg meg az adatok.
És az lenne a problémám hogy a második tábla szépen meg csinálja a reg általi id re az értlket de updétnél ezt dobja ki.
Tehát a felhasználóó id-t le generálja csak a változót nem menti le.

Üdv köszi.



  1. Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE `Id` =  %d;", g_Id[id]);
  2. -->
  3. Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE Id = `%d`;", g_Id[id]);
  4. vagy
  5. Len += formatex(Query[Len], charsmax(Query)-Len, "WHERE Id = '%d';", g_Id[id]);


Ígyis lehet(de akkor töröld ki ezt: Len += formatex(Query[Len], charsmax(Query), "Dollars = '%d', ",Usd[id]);):
  1. Len += formatex(Query[Len], charsmax(Query)-Len, "Dollars = '%d' WHERE Id = '%d';", Usd[id], g_Id[id]);
[/quote]


úgyan az mind a kettölvel
L 01/11/2021 - 23:34:43: [regv1.amxx] 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 'WHERE Id = '1'' at line 1

Szerző:  JohanCorn [ 2021.01.12. 00:10 ]
Hozzászólás témája:  Re: Sql SQL syntax

WHERE előtt már nem kell vessző.

Szerző:  konfigos312 [ 2021.01.12. 15:03 ]
Hozzászólás témája:  Re: Sql SQL syntax

Hova?

Szerző:  JohanCorn [ 2021.01.12. 15:29 ]
Hozzászólás témája:  Re: Sql SQL syntax

konfigos312 írta:
Hova?


Gyakorlatilag sehová. A SET részben felsorolod hogy milyen oszlopok értékeit mire szeretnéd módosítani. Nyilván akkor sorolsz fel, ha több ilyen is van.
Jelen esetben két ilyen volt. A Dollar és a Parameter. Ez utóbbi ki van kommentelve, így az előbbi végén álló vessző gyakorlatilag közvetlen a WHERE után áll. (Nem lenne szabad.) Tehát ha a SET-ben felsorolsz oszlop érték páratokat, akkor győződj meg arról, hogy az utolsó után ne legyen vessző. Szintaktikailag így helyes.

Szerző:  konfigos312 [ 2021.01.12. 15:33 ]
Hozzászólás témája:  Re: Sql SQL syntax

JohanCorn írta:
konfigos312 írta:
Hova?


Gyakorlatilag sehová. A SET részben felsorolod hogy milyen oszlopok értékeit mire szeretnéd módosítani. Nyilván akkor sorolsz fel, ha több ilyen is van.
Jelen esetben két ilyen volt. A Dollar és a Parameter. Ez utóbbi ki van kommentelve, így az előbbi végén álló vessző gyakorlatilag közvetlen a WHERE után áll. (Nem lenne szabad.) Tehát ha a SET-ben felsorolsz oszlop érték páratokat, akkor győződj meg arról, hogy az utolsó után ne legyen vessző. Szintaktikailag így helyes.

tehát ha 2 vagy több változot akarok menteni akkor menni fog vagy akkor is ez fog fent álni?
Csak mert ez így van nekem le kérve már évek óta az egyes táblámba csak most jöt rám hogy külön szedjem a reget meg a mod értékeket.

Szerző:  JohanCorn [ 2021.01.12. 15:40 ]
Hozzászólás témája:  Re: Sql SQL syntax

Mehet bele amennyi fér. Annyi a lényeg, hogy az utolsó láncelem ami még a WHERE előtt ál már ne vesszővel záródjon.

Szintaxis Hiba!

UPDATE `game_mod` SET `Dollars` = '100', WHERE `Id` = '1';

Megfelelő!

UPDATE `game_mod` SET `Dollars` = '100' WHERE `Id` = '1';

Szerző:  konfigos312 [ 2021.01.12. 20:13 ]
Hozzászólás témája:  Re: Sql SQL syntax

JohanCorn írta:
Mehet bele amennyi fér. Annyi a lényeg, hogy az utolsó láncelem ami még a WHERE előtt ál már ne vesszővel záródjon.

Szintaxis Hiba!

UPDATE `game_mod` SET `Dollars` = '100', WHERE `Id` = '1';

Megfelelő!

UPDATE `game_mod` SET `Dollars` = '100' WHERE `Id` = '1';

Köszönöm sikerült.

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