Was für die, die sich mit MySQL auskennen :D

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 Breadfisher :P
    Ich hab ein bei dem laden aus einer MySQL Tabelle/Spalte.
    Wenn sich ein Spieler einloggt sollte eig. die Email geladen werden und in "PlayerInfo[playerid][pEMail]" gespeichert werden
    jedoch wird die Email nicht richtig gespeichert.. Output = "0" .. obwohl dort z.B "Max@Mustermann.bsp" stehen sollte.


    naja schaut euch einfach mal alles an vlt. findet ihr ja einen Fehler.


    So ist die Spalte angelegt:


    Hier das enum:

    enum pInfo{
    pEmail[256],
    };
    new PlayerInfo[MAX_PLAYERS][pInfo];


    Hier der Registerdialog indem die Email befragt/gespeichert wird.

    if(dialogid==2) /* Dialog in dem die eingegebene Email adresse gespeichert wird :( */
    {
    if(response==1) //Button = Zurück
    {
    SendClientMessage(playerid,COLOR_SUCCESSFUL,"Anderes");
    ShowPlayerDialog(playerid,1,1,"Registersystem","Du hast noch keinen Account \n Bitte gebe dein Passwort ein!","Abbrechen","Bestätigen!");
    }
    if(response==0) Button = nächster Schritt.. naja, egal und unwichtig :I
    {
    format(RegInfo[playerid][EMail],255,"%s",inputtext);
    GetPlayerIp(playerid,RegInfo[playerid][IP],255);
    new Year, Month, Day;
    getdate(Year, Month, Day);
    format(RegInfo[playerid][RegisterDatum],255,"%02d.%02d.%d", Day, Month, Year);
    ShowPlayerDialog(playerid,35,DIALOG_STYLE_INPUT,"Registersystem [Geburtsdatum]","Wann wurdest du Geboren?\n\n(DD.MM.YY)","Zurück","Bestätigen");
    }
    }



    Wenn ein Spieler sich registriert hat wird alles gespeichert .. (bsp.: Inputtext vom Dialog in dem nach der Email gefragt wird = "Max@Mustermann.bsp" wird in der Spalte der
    MySQL Tabelle auch "Max@Mustermann.bsp" gespeichert. bloß wieso wird es nicht richtig geladen?

    public Register(playerid)
    {
    new query2[255];
    format(query2,sizeof(query2),"INSERT INTO userdata (EMail) VALUES ('%s')",
    RegInfo[playerid][EMail],
    mysql_query(query2);
    mysql_free_result();
    ShowPlayerDialog(playerid,3,1,"Loginsystem","Dein Account wurde erfolgreich angelegt \n Bitte logge dich ein!","Abbrechen","Login!");
    }


    In dem Public "Login" wird die Email abgefragt und in "PlayerInfo[playerid][pEmail]" gespeichert ...aber anscheinend nicht richtig.

    public Login(playerid,playername[])
    {
    new query[256];
    new data[255];
    new bedienung[256];
    format(bedienung,sizeof(bedienung),"Nickname='%s'",playername);
    format(query,sizeof(query),"SELECT * FROM userdata WHERE %s",bedienung);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())
    {
    mysql_fetch_field("EMail",data);
    PlayerInfo[playerid][pEmail]=strval(data);
    }


    Bsp. (wenn ich die Funktion "ShowStats" aufrufe (per /stats Command) Wird mir Email: 0 angezeigt. Warum?


    stock ShowStats(playerid, targetid)
    {
    new String[500];
    new Email = PlayerInfo[targetid][pEmail];
    format(String, sizeof(String), "Email: %d",Email);
    ShowPlayerDialog(playerid,33,DIALOG_STYLE_MSGBOX,"Stats", String,"Ok","Abbrechen");
    return 1;
    }


    Hoffe das ihr mein Problem verstanden habt
    und mir helfen könntet.


    MfG Butchey

    Einmal editiert, zuletzt von Butchey ()

  • stock ShowStats(playerid, targetid)
    {
    new String[500];
    new Email = PlayerInfo[targetid][pEmail];
    format(String, sizeof(String), "Email: %d",Email); //<--- hier muss %s hin und nicht %d // %d ist für zahlen und %s für schrift zeichen
    ShowPlayerDialog(playerid,33,DIALOG_STYLE_MSGBOX,"Stats", String,"Ok","Abbrechen");
    return 1;
    }


    Korrigiert mich falls, ich mich irre

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Da gibt es ein Funktion Namens: strmid(PlayerInfo[playerid][pEmail], Variable wo es herkommt, 0, strlen(val)-1, 255); und Restliches keine Ahnung.
    Wäre fein wenn mir jemand erklären könnte was der Rest von strmid(PlayerInfo[playerid][pEmail], val, 0, strlen(val)-1, 255); zu bedeuten hat.
    Also das: , 0, strlen(val)-1, 255);


    mfg
    Humen

  • Sieht schonmal "besser" aus..
    jetzt sieht es es so aus "Email: f1"
    eig. sollte da fleischerphilipp@yahoo.de stehen




    //Edit No.2 :


    [pwn]public Login(playerid,playername[])
    {
    new query[256];
    new data[255];
    new bedienung[256];
    format(bedienung,sizeof(bedienung),"Nickname='%s'",playername);
    format(query,sizeof(query),"SELECT * FROM userdata WHERE %s",bedienung);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())
    {
    mysql_fetch_field("Adminlevel",data);
    PlayerInfo[playerid][pAdmin]=strval(data);
    mysql_fetch_field("Banned",data);
    PlayerInfo[playerid][pBanned]=strval(data);
    mysql_fetch_field("Vip",data);
    PlayerInfo[playerid][pVip]=strval(data);
    mysql_fetch_field("Donator",data);
    PlayerInfo[playerid][pDonator]=strval(data);
    mysql_fetch_field("Bankgeld",data);
    PlayerInfo[playerid][pBankgeld]=strval(data);
    mysql_fetch_field("Fraktion",data);
    PlayerInfo[playerid][pFraktion]=strval(data);
    mysql_fetch_field("Knast",data);
    PlayerInfo[playerid][pKnast]=strval(data);
    mysql_fetch_field("Autoschein",data);
    PlayerInfo[playerid][pAutoschein]=strval(data);
    mysql_fetch_field("Motorradschein",data);
    PlayerInfo[playerid][pMotorradschein]=strval(data);
    mysql_fetch_field("Flugschein",data);
    PlayerInfo[playerid][pFlugschein]=strval(data);
    mysql_fetch_field("Bootschein",data);
    PlayerInfo[playerid][pBootschein]=strval(data);
    mysql_fetch_field("Angelschein",data);
    PlayerInfo[playerid][pAngelschein]=strval(data);
    mysql_fetch_field("Waffenschein",data);
    PlayerInfo[playerid][pWaffenschein]=strval(data);
    mysql_fetch_field("Kills",data);
    PlayerInfo[playerid][pKills]=strval(data);
    mysql_fetch_field("Tode",data);
    PlayerInfo[playerid][pTode]=strval(data);
    mysql_fetch_field("Level",data);
    PlayerInfo[playerid][pLevel]=strval(data);
    mysql_fetch_field("Frakrank",data);
    PlayerInfo[playerid][pFrakrank]=strval(data);
    mysql_fetch_field("Leader",data);
    PlayerInfo[playerid][pLeader]=strval(data);
    mysql_fetch_field("Vorname",data);
    strmid(PlayerInfo[playerid][pVorname], data, 0, strlen(data), 255);
    mysql_fetch_field("Nachname",data);
    strmid(PlayerInfo[playerid][pNachname], data, 0, strlen(data), 255);
    mysql_fetch_field("Geburtsdatum",data);
    strmid(PlayerInfo[playerid][pGeburtsdatum], data, 0, strlen(data), 255);
    mysql_fetch_field("EMail",data);
    strmid(PlayerInfo[playerid][pEmail], data, 0, strlen(data), 255);


    Hier mal die Zeilen wo die ganzen PlayerInformationen geladen werden..

    3 Mal editiert, zuletzt von Butchey ()