Mysql R34 String 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
  • Du musst den Grund auch irgendwo reintun

    Code
    (row, const field_name[], destination[], connectionHandle = 1, max_len = sizeof(destination))
    
    
    rowThe row's index (starts at '0').
    const field_name[]The field's name.
    destination[]The string to store the data into.
    connectionHandleThe connection handle this will be processed on (optional).
    max_lenThe size of the destination string (optional).
  • Du musst den Grund auch irgendwo reintun

    Code
    (row, const field_name[], destination[], connectionHandle = 1, max_len = sizeof(destination))
    
    
    rowThe row's index (starts at '0').
    const field_name[]The field's name.
    destination[]The string to store the data into.
    connectionHandleThe connection handle this will be processed on (optional).
    max_lenThe size of the destination string (optional).


    Ich will, das man den Grund aus der DB liest ^^

  • Das ist mir schon klar.
    Guck dir mal die Parameter an.

    • row - Hast du in dem Fall 0
    • field_name - In deine Fall "grund" <- So sollte auch der Spaltenname lauten
    • destination - Hast du keine. Du musst den string auch irgendwo lagern.

    new destination[25];
    cache_get_field_content(0,"grund",destination,dbhandle);

  • Das ist mir schon klar.
    Guck dir mal die Parameter an.

    • row - Hast du in dem Fall 0
    • field_name - In deine Fall "grund" <- So sollte auch der Spaltenname lauten
    • destination - Hast du keine. Du musst den string auch irgendwo lagern.

    new destination[25];
    cache_get_field_content(0,"grund",destination,dbhandle);

    Hier mein Ban Befehl, wo kann ich den Grund speichern ^^ blicke gerade nicht durch xd

    COMMAND:ban(playerid,params[])
    {
    new grund[32],string[128],pID,query[128];
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid,GRAU,"** Du bist nicht eingeloggt!");
    if(!IsPlayerTheAdmin(playerid,3)) return SendClientMessage(playerid,GRAU,"Du bist nicht berechtigt diesen Befehl zu benutzen!");
    if(sscanf(params,"us[32]",pID,grund)) return SendClientMessage(playerid,GRAU,"Benutze: /ban [SpielerName/ID] [Grund]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,GRAU,"Dieser Spieler ist nicht online");
    format(string,128,"[KICK] Admin %s hat den Spieler %s vom Server gebannt, Grund: %s",PlayerName(playerid),PlayerName(pID),grund);
    SendClientMessageToAll(ROT,string);
    format(query,sizeof(query),"INSERT INTO bannedplayers (username,admin,grund) VALUES ('%s','%s','%s')",PlayerName(pID),PlayerName(playerid),grund);
    mysql_function_query(dbhandle,query,false,"","");
    Kick(pID);
    return 1;
    }

  • Sollte auch so funktionieren:
    new destination[25];cache_get_row(0, X, destination);



    bei X musst du dann die ID vom Feld grund einfügen,
    sprich hast du eine Tabelle:


    0) id,
    1) name,
    2) password,
    3) score,
    4) money,
    5) grund


    wär Grund (also X) = 5, da von 0 an gezählt wird


    /e: Hö? Sollte so funktionieren... @ Post über mir


  • Muss nicht da irgendwo noch die dbhandle hin? xd

    Nicht zwingend notwendig, wenn du nur 1 Verbindung im Script aufbaust.


    kannst du natürlich aber trotzdem machen:
    cache_get_row(0, X, destination, dbhandle);



    MfG

  • müsste das gehen? xd



    public OnUserCheckBan(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    new str[128];
    new destination[25];cache_get_row(0, 3, destination);
    format(str,128,"Grund: %s",destination);
    SendClientMessage(playerid,ROT,str);
    }
    return 1;
    }


    // Da kommt Grund: NULL