Hallo Breadfisher
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