Mysql Wert angeben in der Tabelle.

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
  • Hallo liebe com.
    Ich würde gerne einen Wert in eine Tabelle per Befehl eintragen.
    dcmd_lohn(playerid,params[])
    {
    if(SpielerInfo[playerid][pLeader] <= 0) return KeineRechte
    if(SpielerInfo[playerid][pLeader] == SpielerInfo[playerid][pFraktion])
    {
    new wert[125];
    if(sscanf(params,"i",wert)) return SendClientMessage(playerid,weis,"Benutzung: /{38D2F5}lohn{FFFFFF} [Wert]");
    mysql_SetInt("Lohn", SpielerInfo[playerid][pFraktion], wert); // Hilfe :)
    }
    return 1;
    }
    So sieht es bei mir aus.
    Doch mir ist klar das ich dies wohl nicht richtig gemacht habe.
    Ich bitte um unterstützung :)


    Der Pate.


  • dcmd_lohn(playerid,params[])
    {
    if(SpielerInfo[playerid][pLeader] <= 0) return KeineRechte //Das wird so nicht klappen.
    if(SpielerInfo[playerid][pLeader] == SpielerInfo[playerid][pFraktion])
    {
    new wert, string[128];
    if(sscanf(params,"i",wert)) return SendClientMessage(playerid,weis,"Benutzung: /{38D2F5}lohn{FFFFFF} [Wert]");
    format(string, sizeof(string), "UPDATE `TabellenName` SET `Lohn`='%i' WHERE `Fraktion`='%i'", wert, SpielerInfo[playerid][pFraktion]);
    mysql_query(string);
    }
    return 1;
    }


    Für TabellenName musst du den Namen der Tabelle, die du updaten willst angeben. Evtl. ist in deiner Datenbank auch die Spalte der Fraktion anders benannt, dann musst du dies auch abändern.

  • return KeineRecht
    #define KeineRechte SendClientMessage(playerid, weis, " Du darfst diesen {FF0055}Befehl{FFFFFF} nicht {FF0055}nutzen{FFFFFF}!");
    Doch das klappt ;)
    Ich teste es mal :)



    format(string, sizeof(string), "UPDATE `Lohn` SET '%i'='%i'",SpielerInfo[playerid][pFraktion],wert);
    mysql_query(string);
    Deine Version klappte nicht meine leider auch nicht.
    Hier mal wie die Tabelle aussieht.

    Also Die zahlen als Spaltennamen sind die ID der Fraktion.
    Und Lohn ist halt der Name der Tabelle.

  • Klar! Das ist einfach nur eine SQL. Diese mysql_Get.. Hilfsfunktionen machen nichts anderes, doch sind, falls man mehrere Dinge laden will, sehr Ressourcenfressend.
    Falls du Interesse an Ressourcenfreundlichem Scripten hat, kannst du dir ja dazu Tutorials anlesen.


    Zu der SQL:
    Das UPDATE Statement Updated immer Daten in einer Tabelle. Bei UPDATE ist es so, dass die generelle SQL so aussieht:


    SQL
    UPDATE `TabellenName` SET `Spalte`='Wert'


    Daran kann man auch dann noch eine WHERE Bedingung ansetzen. Bsp.:


    SQL
    UPDATE `Accounts` SET `Level`='2' WHERE `Name`='UncleSub'


    Diese SQL Updated in der Tabelle Accounts die Spalte Level auf 2, wo der Name UncleSub ist.