Mysql String Setzen und 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
  • TTag


    Hab da nen Problem woran liegt der Fehler?


    Ban Befehl
    ocmd:ban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Info: Du bist kein Admin.");
    new pID,grund[128],string[128];
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,HELLBLAU,"FEHLER: /ban [ID/Name] [Grund]");
    format(string,sizeof(string),"Info: Spieler %s wurde Gebannt von %s | Grund: %s",sName(pID),sName(playerid),grund);
    SendClientMessageToAll(ROT,string);
    SpielerInfo[pID][pBan] = 1;
    mysql_SetString("accounts",grund, SpielerInfo[playerid][pBanGrund], "Name", SpielerInfo[playerid][pName]);
    Kick(pID);
    return 1;
    }


    Stock Speichern


    mysql_SetString("accounts", "BanGrund", SpielerInfo[playerid][pBanGrund], "Name", SpielerInfo[playerid][pName]);


    Stock Laden
    SpielerInfo[playerid][pBanGrund] = mysql_GetString("accounts", "BanGrund", "Name", SpielerInfo[playerid][pName]);


    Will den Ban grund Speichern lassen nur wie O.o kommt 1 Error


    (618) : error 006: must be assigned to an array


    Zeile 618 ist der Teil von Stock Laden

    Einmal editiert, zuletzt von Mr.Toast () aus folgendem Grund: Titel Geändert

  • versuch es mal mit
    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new 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);
    return Get;
    }

  • Hab ich so schon


    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;
    }

  • haste schon aba da ist ein Fehler Dirne
    versuch es einfach mit den
    du wirst sehn das es geht(Vielleicht :D)
    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);
    return Get;
    }

  • Das was VenomKing da hat ist schon richtig so.


    Zu deinem Problem:
    1.
    SpielerInfo[playerid][pBanGrund] = mysql_GetString("accounts", "BanGrund", "Name", SpielerInfo[playerid][pName]);
    ist falsch. Das sollte man z.b mit Format machen.


    2.
    mysql_SetString("accounts",grund, SpielerInfo[playerid][pBanGrund], "Name", SpielerInfo[playerid][pName]);
    Das ist, wenn ich das richtig sehe, falsch. Der zweite parameter gibt den namen der Spalte in der MySQL-Tabelle an. Da ich deine Tabellen Struktur nicht kenne, kann ich dir nicht genau sagen was da rein muss.



    //Edit:
    ah, grad gesehen^^
    So muss es sein:
    mysql_SetString("accounts", "BanGrund", grund, "Name", SpielerInfo[playerid][pName]);


    1. Parameter: Der Name der Tabelle.
    2. Parameter: Der Name der Spalte.
    3. Parameter: Der Wert, der in die Spalte eingetragen werden soll (also in dem Fall der Grund).

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • mysql_SetString("accounts", "BanGrund", grund, "Name", SpielerInfo[playerid][pName]);In den befehl, also da wo du den Grund speichern willst.


    format(SpielerInfo[playerid][pBanGrund], sizeof(SpielerInfo[playerid][pBanGrund]), "%s", mysql_GetString("accounts", "BanGrund", "Name", SpielerInfo[playerid][pName]));
    Da hin wo du es laden willst.

    The fact is, I am right. And if you think I'm wrong, you are wrong.