Unerklärliche ausgabe im 3DTextLabel u. MySQL

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag liebe Community,


    ich habe folgendes Problem und zwar hab ich mir einen Befehl erstellt mit dem ich InGame eine Fraktion Erstellen kann und das sie direkt in die MySQL Datenbank eingefügt wird. Aus irgendeinem Grund wir mir aber im 3DTextLabel als Leader Angezeigt "na" und in der MySQL log steht unteranderem :


    [03:23:42] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''na' at line 1


    Ich kann den Fehler einfach nicht finden aber Hoffe das doch einer von euch schlauer ist als ich ;)


    ocmd:cfrak(playerid,params[])
    {
    if(IsPlayerAdmin(playerid))
    {
    new fname[164],
    Float:x,
    Float:y,
    Float:z,
    string[164];
    if(sscanf(params,"s",fname))return SendClientMessage(playerid,COLOR_RED,"INFO: /cfrak [Fraktions Name]");
    new fID = GetFreeFrakID();
    GetPlayerPos(playerid,x,y,z);
    FrakInfo[fID][f_x] = x;
    FrakInfo[fID][f_y] = y;
    FrakInfo[fID][f_z] = z;
    FrakInfo[fID][f_name] = fname;
    strpack(FrakInfo[fID][f_name_rang_1],"Azubi",164);
    strpack(FrakInfo[fID][f_name_rang_2],"Mitglied",164);
    strpack(FrakInfo[fID][f_name_rang_3],"Assistent",164);
    strpack(FrakInfo[fID][f_name_rang_4],"CO Leader",164);
    strpack(FrakInfo[fID][f_name_rang_5],"Leader",164);
    strpack(FrakInfo[fID][f_leader],"Kein Leader",164);
    FrakInfo[fID][f_gehalt_rang_1] = 400;
    FrakInfo[fID][f_gehalt_rang_2] = 600;
    FrakInfo[fID][f_gehalt_rang_3] = 800;
    FrakInfo[fID][f_gehalt_rang_4] = 1000;
    FrakInfo[fID][f_gehalt_rang_5] = 1200;
    FrakInfo[fID][f_konto] = 300000;
    FrakInfo[fID][f_id_x] = CreatePickup(PICKUP_INFO,1,x,y,z,0);
    format(string,sizeof string,"{FFFFFF}Fraktion: {FF0000}%s\n\n{FFFFFF}Leader: {FF0000}%s\n{FFFFFF}Mitglieder: {FF0000}%i",FrakInfo[fID][f_name],FrakInfo[fID][f_leader],FrakInfo[fID][f_members]);
    FrakInfo[fID][f_id_y] = Create3DTextLabel(string,COLOR_WHITE,x,y,z,40.0,0,0);
    new query[1640];
    format(query,sizeof query,"INSERT INTO fraktionen (x,y,z,name,leader,rang1name,rang2name,rang3name,rang4name,rang5name,rang1gehalt,rang2gehalt,rang3gehalt,rang4gehalt,rang5gehalt,konto) VALUES('%f','%f','%f','%s','%s','%s','%s','%s','%s','%s','%i','%i','%i','%i','%i','%i')",x,y,z,fname,FrakInfo[fID][f_leader],FrakInfo[fID][f_name_rang_1],FrakInfo[fID][f_name_rang_2],FrakInfo[fID][f_name_rang_3],FrakInfo[fID][f_name_rang_4],FrakInfo[fID][f_name_rang_5],400,600,800,1000,1200,300000);
    mysql_function_query(dbhandle,query,false,"","");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"ERROR: Du darfst diesen Befehl nicht nutzen!");
    }
    return 1;
    }


    Vielen dank schonmal im vorraus! :D

  • Funktioniert nicht ich bekommen den selben SQL ERROR


    [13:33:45] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''na' at line 1

  • C
    format(query,sizeof query,"INSERT INTO fraktionen (x,y,z,name,leader,rang1name,rang2name,rang3name,rang4name,rang5name,rang1gehalt,rang2gehalt,rang3gehalt,rang4gehalt,rang5gehalt,konto) VALUES('%f','%f','%f','%s','%s','%s','%s','%s','%s','%s','%i','%i,'%i','%i','%i','%i')",x,y,z,fname,FrakInfo[fID][f_leader],FrakInfo[fID][f_name_rang_1],FrakInfo[fID][f_name_rang_2],FrakInfo[fID][f_name_rang_3],FrakInfo[fID][f_name_rang_4],FrakInfo[fID][f_name_rang_5],400,600,800,1000,1200,300000);

    So ist es richtig. Du hattest ein ' zu viel.

  • format(query,sizeof query,"INSERT INTO fraktionen (x,y,z,name,leader,rang1name,rang2name,rang3name,rang4name,rang5name,rang1gehalt,rang2gehalt,rang3gehalt,rang4gehalt,rang5gehalt,konto) VALUES('%f','%f','%f','%s','%s','%s','%s','%s','%s','%s','%i','%i,'%i','%i','%i','%i')",x,y,z,fname,FrakInfo[fID][f_leader],FrakInfo[fID][f_name_rang_1],FrakInfo[fID][f_name_rang_2],FrakInfo[fID][f_name_rang_3],FrakInfo[fID][f_name_rang_4],FrakInfo[fID][f_name_rang_5],400,600,800,1000,1200,300000);

    nein das Problem geht immernoch nicht weg.:


    [14:24:40] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''na' at line 1


    //edit



    Habe jetzt mal selber ne kleine änderung vorgenommen jetzt sieht das ganze so aus:


    ocmd:cfrak(playerid,params[]){if(IsPlayerAdmin(playerid)){new fname[164],Float:x,Float:y,Float:z,string[164];if(sscanf(params,"s",fname))return SendClientMessage(playerid,COLOR_RED,"INFO: /cfrak [Fraktions Name]");new fID = GetFreeFrakID();GetPlayerPos(playerid,x,y,z);FrakInfo[fID][f_x] = x;FrakInfo[fID][f_y] = y;FrakInfo[fID][f_z] = z;format(FrakInfo[fID][f_name],sizeof FrakInfo,"%s",fname);format(FrakInfo[fID][f_name_rang_1],sizeof FrakInfo,"Azubi",fname);format(FrakInfo[fID][f_name_rang_2],sizeof FrakInfo,"Mitglied",fname);format(FrakInfo[fID][f_name_rang_3],sizeof FrakInfo,"Assistent",fname);format(FrakInfo[fID][f_name_rang_4],sizeof FrakInfo,"CO_Leader",fname);format(FrakInfo[fID][f_name_rang_5],sizeof FrakInfo,"Leader",fname);format(FrakInfo[fID][f_leader],sizeof FrakInfo,"Kein Leader",fname);FrakInfo[fID][f_gehalt_rang_1] = 400;FrakInfo[fID][f_gehalt_rang_2] = 600;FrakInfo[fID][f_gehalt_rang_3] = 800;FrakInfo[fID][f_gehalt_rang_4] = 1000;FrakInfo[fID][f_gehalt_rang_5] = 1200;FrakInfo[fID][f_konto] = 300000;FrakInfo[fID][f_id_x] = CreatePickup(PICKUP_INFO,1,x,y,z,0);format(string,sizeof string,"{FFFFFF}Fraktion: {FF0000}%s\n\n{FFFFFF}Leader: {FF0000}%s\n{FFFFFF}Mitglieder: {FF0000}%i",FrakInfo[fID][f_name],FrakInfo[fID][f_leader],FrakInfo[fID][f_members]);FrakInfo[fID][f_id_y] = Create3DTextLabel(string,COLOR_WHITE,x,y,z,40.0,0,0);new query[1640];format(query,sizeof query,"INSERT INTO fraktionen (x,y,z,name,leader,rang1name,rang2name,rang3name,rang4name,rang5name,rang1gehalt,rang2gehalt,rang3gehalt,rang4gehalt,rang5gehalt,konto) VALUES('%f','%f','%f','%s','%s','%s','%s','%s','%s','%s','%i','%i,'%i','%i','%i','%i')",x,y,z,fname,FrakInfo[fID][f_leader],FrakInfo[fID][f_name_rang_1],FrakInfo[fID][f_name_rang_2],FrakInfo[fID][f_name_rang_3],FrakInfo[fID][f_name_rang_4],FrakInfo[fID][f_name_rang_5],400,600,800,1000,1200,300000);mysql_function_query(dbhandle,query,false,"","");}else{SendClientMessage(playerid,COLOR_RED,"ERROR: Du darfst diesen Befehl nicht nutzen!");}return 1;}



    Bekomme aber immer noch diesen Fehler;


    [14:31:20] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '800','1000','1200','300000')' at line 1


    //edit 2



    Habe den Fehler schon selber gefunden es war ein ' zu wenig.


    Trotzdem danke an eure HIlfe