Querys zusammenfügen

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
  • Hi Leute,


    ich arbeite gerade daran meine MySQL Speicherung resourcenschonender zu machen. Jedoch haperts bei den Zusammenfügen von Querys .. es wird nichts geupdatet mehr geupdatet.


    new AllInOne[1000],Query[4] [200];
    format(Query[0], 200, "UPDATE `accounts` SET `Adminlevel` = '%i', `Kills` = '%i', `Tode` = '%i', `Banned` = '%i', `Skin` = '%i', `Level` = '%i', `Geld` = '%i',",
    SpielerInfo[playerid][pAdminlevel], SpielerInfo[playerid][pKills], SpielerInfo[playerid][pTode], SpielerInfo[playerid][pBanned], GetPlayerSkin(playerid), GetPlayerScore(playerid), GetPlayerMoney(playerid));
    format(Query[1], 200, "`Perso` = '%i', `Autoschein` = '%i', `Waffenschein` = '%i', `Motorradschein` = '%i', `Angelschein` = '%i' WHERE `Name` = '%s'",
    SpielerInfo[playerid][Perso], SpielerInfo[playerid][Autoschein], SpielerInfo[playerid][Waffenschein], SpielerInfo[playerid][Angelschein], SpielerInfo[playerid][pName]);
    format(AllInOne, 1000,"%s%s", Query[0],Query[1]);
    mysql_query(AllInOne);


    Ich habs mal so gemacht, meine Frage ist kann das Überhaupt so funktionieren wenn ja wo liegt der Fehler, wenn nein wie könnte ich sonst die Querys zusammenfügen?


    Lg.
    Makaveli

  • [b]Hey,
    new mquery[512],query[128];
    strcat(mquery,"UPDATE `accounts` SET ");
    format(query,sizeof(query),"Level = '%d', ", SpielerInfo[playerid][pLevel]);
    strcat(mquery,query);
    format(query,sizeof(query),"Geld = '%d', ", SpielerInfo[playerid][pGeld]);
    strcat(mquery,query);
    format(query,sizeof(query),"Kills = '%d' ", SpielerInfo[playerid][pKills]);
    strcat(mquery,query);
    format(query,sizeof(query)," WHERE Name = '%s'", SpielerInfo[playerid][pName]);
    strcat(mquery,query);
    mysql_query(mquery);
    Liebe Grüße


  • Hey Danke dir fürs Beispiel :D
    Vielleicht ne blöde Frage, aber mann könnte Geld, Level und Kills in einem Query machen und dann mit dem mquery zusammenfügen oder?


    Lg

  • Klar, ich selber habe ca. 10 Variablen in einer Zeile, die füge ich dann zusammen. ( Natürlich insg. 5 Mal, habe 100 PlayerVariablen )
    Du darfst nicht zuviel in eine Zeile hauen, da der Compiler sonst herummuckt ;)


    Liebe Grüße

  • Du musst dann nur die Variable query[128]; größer machen! ;)
    Hier noch n Beispiel:
    new mquery[512],query[128];
    strcat(mquery,"UPDATE `accounts` SET ");
    format(query,sizeof(query),"Level = '%d', Adminlevel = '%d', ", SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pAdminLevel]);
    strcat(mquery,query);
    format(query,sizeof(query),"Geld = '%d, Tutorial = '%d'', ", SpielerInfo[playerid][pGeld], SpielerInfo[playerid][pAdminLevel]);
    strcat(mquery,query);
    format(query,sizeof(query),"Kills = '%d' ", SpielerInfo[playerid][pKills]);
    strcat(mquery,query);
    format(query,sizeof(query)," WHERE Name = '%s'", SpielerInfo[playerid][pName]);
    strcat(mquery,query);
    mysql_query(mquery);


  • Müsste dann auch mquery erhöht werden ?