Fraktionskassen mit MySQL speichern bzw auslesen.

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
  • Heyhooo,
    Ich fange momentan mit nem Kumpel nen Selfmade an, und sind bei den fkassen angelangt, aber wir haben kein Plan wie wir die speichern sollen, also alle in einer Tabelle. Ich habe die Vorlage von Maddin, also mysql_setint, etc...
    weil wenn ich den Spieler speichern will muss ich das ja so machen -> mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);


    Habe aber kein Plan, wie ich das jetzt mache!


    Hier mein "Fraktionssystem" gezeigt anhand von dem makeleader befehl:

    Spoiler anzeigen

    #define MAX_FRACS 9
    new Fracs[MAX_FRACS][24] = {
    "LSPD",
    "FBI",
    "Army",
    "Grovestreet",
    "Vagos",
    "Aztecas",
    "Ballas",
    "Yakuza",
    "LCN"
    };

    Spoiler anzeigen
    COMMAND:makeleader(playerid, params[])
    {
    if(SpielerInfo[playerid][pAdminlevel] >= 6)
    {
    new pID,frak;
    if(sscanf(params,"ui",pID,frak))return SendClientMessage(playerid,Grau,"Nutze: /makeleader [ID] [Fraktionsname]");
    if(frak > 6 || frak < 0) return SendClientMessage(playerid, Grau, " Geh nicht tiefer als Nummer 0, oder höher als Nummer 24!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Weiß,"Dieser Spieler ist nicht online");
    SpielerInfo[pID][pFraktion] = frak;
    SpielerInfo[pID][pLeader] = frak;
    new ftext[32];
    if(frak == 0) { ftext = "Zivilisten"; } else { ftext = Fracs[(frak-1)]; }
    new deradmin[32],string[128];
    GetPlayerName(playerid,deradmin,sizeof(deradmin));
    format(string, sizeof(string),"%s hat dich zum Leader der Fraktion %s gemacht",deradmin,ftext);
    SendClientMessage(pID, Hellblau, string);
    new derleader[32],string2[128];
    GetPlayerName(playerid,derleader,sizeof(derleader));
    format(string2, sizeof(string2),"Du hast %s zum Leader der Fraktion %s gemacht",derleader,ftext);
    SendClientMessage(playerid,Gelb,string2);
    return 1;
    }
    return 1;
    }


    Ich bedanke mich schonmal herzlich im vorraus

    Mit freundlichen Grüßen

    #define



  • Als erstes musst du eine Tabelle in der MySQL Datenbank erstellen, sagen wir du nennst sie "fraktionskassen".
    In der Tabelle legst du entsprechende Felder an, wie zum Beispiel "FraktionsID" und "Geld".


    Wenn du das hast kannst du im Script folgendes benutzen:


    mysql_SetInt("fraktionskassen", "Geld", Fraktionsgeld, "FraktionsID", Fraktionsid);


    Fraktionsgeld ist in diesem Fall das Geld, dass die Fraktion besitzt und welches gespeichert werden soll.
    Fraktionsid ist die Fraktion, die das entsprechende Geld besitzt. Alles zusammen wird in der Tabelle "fraktionskassen" gespeichert.


    Der SQL Syntax würde in diesem Fall wie folgt lauten:

    SQL
    "UPDATE fraktionskassen SET Geld='Fraktionsgeld' WHERE FraktionsID='Fraktionsid'
  • jaaa... aber wie mache ich das, dass zum beispiel wenn einer der grovestreet das macht, dass das geld auch wirklich in der kasse der grovestreet gespeichert wird?
    das ist mein Problem... :(

    Mit freundlichen Grüßen

    #define



  • Jetzt sind wir bei meinem Problem angekommen....
    Ich bin eher neu in MySQL, also ich muss da noch nen bissl reinkommen...
    Nunjaa... wie frage ich den die ID ab?


    Ich habe jetzt eine Tabelle gemacht, die so aussieht



    und ich habe mir schonmal eine enum angelegt:

    enum Fraks
    {
    Fraktid,
    Fraktgeld
    }
    new Fraktionen[Fraks];


    Und nochmal danke an euch, die mir helfen :love:

    Mit freundlichen Grüßen

    #define



  • Die von Maddin halt:


    Spoiler anzeigen
    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }
    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }
    stock mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }
    stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(To, To);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }


    nochmal danke an dich sonic

    Mit freundlichen Grüßen

    #define