Offline |
|
|
Csatlakozott:2018.01.28. 19:04 Hozzászólások:135 Megköszönt másnak: 15 alkalommal Megköszönték neki: 44 alkalommal
|
for(new i=0; i <= 4;i++) { len += format(szQuery[len], 2048, "SELECT SUM(F%i) as F%i FROM accounts; ",i,i); }
Arra tippelek, hogy mivel külön-külön sorokban vannak megadva a stringben, csak az utolsó fog érvényesülni. Valahogy így néz ki a teljes stringed: "SELECT SUM(F0) as F0 FROM accounts; SELECT SUM(F1) as F1 FROM accounts; SELECT SUM(F2) as F2 FROM accounts;..."
és folytatván... Mivel csak egy oszlopot olvas be és 0-tól van az oszlop id, a második for loopod 1-nél megakad, mert olyan oszlop nem létezik a lehívásban. Error: L 06/30/2020 - 17:07:21: [MySQL] Invalid column: 1 Ha tudod, hogy mennyit akarsz lehívni és az nem oly sok, én kerülném a for-t a mysql parancsnál és ezeket próbálnám: format(szQuery, 2048, "SELECT (SUM(F0) as F0, SUM(F1) as F1, SUM(F2) as F2, SUM(F3) as F3), SUM(F4) as F4) FROM accounts;")
format(szQuery, 2048, "SELECT (SUM(F0), SUM(F1), SUM(F2), SUM(F3), SUM(F4)) as (F0, F1, F2, F3, F4)) FROM accounts;")
Ha működik, én mindenképp a másodikat használnám, sokkalta szebb és átláthatóbbNem dolgoztam még "as" keyword-el, de szerintem valamelyik menni fog. A handle maradhat úgy. Megj.:- Amíg nem akarod belemásolni a stringbe saját magát, érdemes formatex-et használni, sokkal gyorsabb.(https://www.amxmodx.org/api/string/formatex)
- Ha len-el dolgozol egy olyan stringen, amibe külön parancsokban szeretnél írni, ne felejtsd el a format(ex)-ben a max string méretet is a len-el összekötni, mert az is lehet olyan hiba, ami egyszer majd random feltűnik, mert más-más string méretek kerülnek mentésre.
Ezen esetben:
len += format(szQuery[len], 2048, "SELECT (SUM(F0), SUM(F1), SUM(F2), SUM(F3), SUM(F4)) as (F0, F1, F2, F3, F4)) FROM accounts;") ---> len += format(szQuery[len], 2048 - len, "SELECT (SUM(F0), SUM(F1), SUM(F2), SUM(F3), SUM(F4)) as (F0, F1, F2, F3, F4)) FROM accounts;")
- Érdemes olyan parancsoknál, ahol string méretet kell megadni charsmax-ot használni. Azért, mert ha változtatni szeretnél a string méretén, akkor azzal nem kell foglalkoznod. Pl. ez esetben nem kell a 2048-at átírnod.
Úgyanúgy néz ki mint most, csak a 2048 helyett charsmax(szQuery)-t írsz:
len += format(szQuery[len], charsmax(szQuery) - len, "SELECT (SUM(F0), SUM(F1), SUM(F2), SUM(F3), SUM(F4)) as (F0, F1, F2, F3, F4)) FROM accounts;")
- Nem érdemes ennek a stringnek 2048-as méretet adni. Én mindig egy párral szoktam többet mint ahány karakter vagy megpróbálom felfelé saccolni. Ennek amíg nem tervezel nagyobb méret növelést, bőven elég 150-es méret.
_________________ [ MasterGaming ]
[ TS3 -- Discord ] [ FB Oldal -- FB Csoport ]
[ CS1.6 Szerverek ] Hamarosan
Ők köszönték meg Vieni nek ezt a hozzászólást: saxxo (2020.07.04. 19:27) |
|
|