Szerző Téma: Túl hosszú sor, de hogy lehetne tagolni?  (Megtekintve 1372 alkalommal)

Túl hosszú sor, de hogy lehetne tagolni?
« Dátum: 2013. március 09. - 12:40:56 »
0 Show voters
Sziasztok!
A problémám nagyon egyszerû, van egy sorom:
 
   mysql_query(\"CREATE TABLE IF NOT EXISTS accounts(user VARCHAR(24), password VARCHAR(200), .... IP VARCHAR(16) )\");

 
(Természetesen ennél jóval hosszabb, ha pontos a karakterszámláló durván 650karakter)
Mint azt láthatjátok, ez egy MySQL Query, ebbõl adódóan, ha csak random entereket rakok bele, nem lesz jó, viszont a Pawno se fogadja el így, mert túl hosszú.
A kérdésem a következõ: hol és hogyan lehetne több részre tagolni ezt a sort?
Elõre is köszönöm a válaszokat
« Utoljára szerkesztve: 2013. március 09. - 22:49:13 írta Vektor »

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #1 Dátum: 2013. március 09. - 13:13:51 »
0 Show voters
Miért nem hozod létre phpmyadminnal? Egyszerûbb.. De ha ragaszkodsz ehhez a megoldáshoz, akk \\ jel és mehet új sorba a folytatás.

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #2 Dátum: 2013. március 09. - 15:48:11 »
0 Show voters
Létrehozhatnám azzal is, de a folyamatos változtatások miatt egyszerûbb ha a mód magának hozza létre
Amúgy sajnos nem jó :(
 

... .pwn(1708) : error 075: input line too long (after substitutions)
... .pwn(1709) : error 037: invalid string (possibly non-terminated string)
... .pwn(1709) : error 017: undefined symbol \"CREATE\"
... .pwn(1709) : error 017: undefined symbol \"TABLE\"
... .pwn(1709) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
5 Errors.

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #3 Dátum: 2013. március 09. - 15:50:04 »
0 Show voters
new
      query[650 + 1]; // persze növeld a méretét ha minél több a karakter.
strcat(query, \"CREATE TABLE IF NOT EXISTS accounts(user VARCHAR(24),\");
strcat(query, \" password VARCHAR(200), .... IP VARCHAR(16) )\");
mysql_query(query);

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #4 Dátum: 2013. március 09. - 16:32:37 »
0 Show voters
Köszi zsolesszka :D
Egy baj: annak ellenére, hogy a pawno lefut, valamiért nem hozza létre a táblát
A karakter számláló 589 karaktert  számolt (szóközökkel mindennel együtt), így az általad írt változó jó volt, viszont valamiért mégse hozza létre a táblát.
Mindent úgy csináltam, ahogy leírtad. (Az elõtte és utána lévõ két táblát létrehozza, mi sima queryvel van)

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #5 Dátum: 2013. március 09. - 17:31:19 »
0 Show voters
Valamit elírtál akkor, nézd meg a mysql_log-ot valami hiba üzenetnek lennie kell ha nem hozta létre a táblát.

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #6 Dátum: 2013. március 09. - 18:01:05 »
0 Show voters
Többször is megpróbáltam, de semmi, csak és kizárólag egy nagy debug aktiválva felirat, és semmi más :(
 

new cquery[650 + 1];
mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);
    strcat(cquery, \"CREATE TABLE IF NOT EXISTS karakterek(user Tulaj VARCHAR(24), ... Korhazban INT(20),\");
    strcat(cquery, \" Alvas INT(20), ... Ehseg INT(20) )\");
mysql_query(cquery);
.
.
.

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #7 Dátum: 2013. március 09. - 20:04:55 »
0 Show voters
Jó hogy nem másolod be a teljes kódot ne tudjam tesztelni, de már ebben a rövid kódban is hiba van.
Az user oszlopnévnek nincs meghatározva a típusa.
 
karakterek(user Tulaj VARCHAR(24),[/quote]
Az strcat az biztosan összefûzi a karakterláncokat a cquery változóba.
Esetleg írasd ki konzolba print-el a cquery tartalmát mysql_query elõtt:
 

print(cquery);
mysql_query(cquery);

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #8 Dátum: 2013. március 09. - 22:12:49 »
0 Show voters
Néha elszégyenlem magam, hogy lehetek ennyire vak xD
Köszi az eddigi segítséget, de valamiért még így sem jó :o
Kipróbáltam PHPMyadminban, eredmény:
 
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 \'Int INT(20), VirWorld INT(20), Crashelt INT(20), Szarmazas INT(20), Kor INT(20),\' at line 1[/quote]
 

new cquery[650 + 1];
mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);
    strcat(cquery, \"CREATE TABLE IF NOT EXISTS karakterek(user VARCHAR(24), Tulaj VARCHAR(24), Pos_X FLOAT, pPos_Y FLOAT, Pos_Z FLOAT, Int INT(20), VirWorld INT(20), Crashelt INT(20), Szarmazas INT(20), Kor INT(20), Nem INT(20), Health FLOAT, Korozes INT(20), Bortonben INT(20), Korhazban INT(20),\");
    strcat(cquery, \" Alvas INT(20), Piseles INT(20), Ehseg INT(20), Szomj INT(20), Penz_D INT(20), Penz_C INT(20), BankPenz INT(20), Fizetes_D INT(20), Fizetes_C INT(20), Csekk INT(20), Munka INT(20), FFrakL INT(20), FFrakT INT(20), FFrakR INT(20), MFrakL INT(20), MFrakT INT(20), MFrakR INT(20) )\");
    print(cquery);

 
Amúgy itt a teljes kód is :D

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #9 Dátum: 2013. március 09. - 22:33:53 »
0 Show voters
Az int helyett válassz más oszlopnevet az int foglalt szó, tehát nem használhatod oszlopnévnek.
 
   strcat(cquery, \"CREATE TABLE IF NOT EXISTS karakterek(user VARCHAR(24), Tulaj VARCHAR(24), Pos_X FLOAT, pPos_Y FLOAT, Pos_Z FLOAT, szam INT(20), VirWorld INT(20), Crashelt INT(20), szarmazas INT(20), Kor INT(20), Nem INT(20), Health FLOAT, Korozes INT(20), Bortonben INT(20), Korhazban INT(20), \");
strcat(cquery, \"Alvas INT(20), Piseles INT(20), Ehseg INT(20), Szomj INT(20), Penz_D INT(20), Penz_C INT(20), BankPenz INT(20), Fizetes_D INT(20), Fizetes_C INT(20), Csekk INT(20), Munka INT(20), FFrakL INT(20), FFrakT INT(20), FFrakR INT(20), MFrakL INT(20), MFrakT INT(20), MFrakR INT(20));\");

Túl hosszú sor, de hogy lehetne tagolni?
« Válasz #10 Dátum: 2013. március 09. - 22:48:58 »
0 Show voters
Úgy tûnik ez volt a baj :D
Köszi zsoleszka, na megyek és beleverem a fejem a falba, hogy lehettem ennyire gyökér :(
Régen direkt az apróságokat kerestem, régen xD Látszik, hogy egy ideje nem scriptelek annyit.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal