MySQL streigt

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
  • Hey Leute,
    Ich habe ein Problem und zwar hab ich ein MySQL Script angefangen aber wenn ich mich registriere krieg ich nicht Level 1 wie angegeben wieso? hier mal meine Accounts.sql:

    Und hier im Script meine Speicherung(Wie ich es Lade):


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    }
    return 1;
    }
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    Ich hoffe einer kann mir helfen und danke im voraus !


    //EDIT Geld geht auch nicht.

  • Was geht nicht gib mal einen der stocks

    Allgemein du sagtes ja ich soll mysql_store_result(); rein machen hier z.b

    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    mysql_store_result();
    return true;
    }[/size][/size]


    //EDIT Wenn vielleicht grade Zeit besteht würdest du für mich ein Basic Script machen also wo nur Login Register ist und wo Level Geld Tode Kills und Health gespeichert wird?

  • Um dir ein Tipp zu geben, lass das mit den Stocks sein. Sobald du viele Informationen verarbeiten willst, setzt der Stock die Querys einzeln ab, was den Server wohl etwas überlasten wird. Kann zu Crashen führen und belastet das Script nur unnötig.
    Mfg

  • hatte ich auch mal


    seit dem ich die MySQL-Speicherung so mache:
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new name[MAX_PLAYER_NAME], query[128];
    GetPlayerName(i, name, sizeof(name));

    format(query, 128, "UPDATE accounts SET \
    Level = '%d' \
    Geld = '%d'\
    Kills = '%d'\
    Tode = '%d'\
    Health = '%.1f'\
    WHERE `Name` = '%s'",
    SpielerInfo[playerid][pLevel],
    SpielerInfo[playerid][pGeld],
    SpielerInfo[playerid][pKills],
    SpielerInfo[playerid][pTode],
    SpielerInfo[playerid][pHealth],
    name);

    mysql_query(query);
    mysql_store_result();
    }
    }
    }
    return 1;
    }
    (ich habe deine afragen umgeschrieben)
    funktioniert das bei mir eigendlich

  • Wenn ich es so mache wie du geht es leider immer noch nicht X(

  • mach doch ma in OnGamemodeInit() das hier rein:
    mysql_debug(1);


    da müsste der ne debug.txt datei im server-verzeichniss erstellt haben
    und schick ma das was da drin steht wenn du es versuchst

    So sorry das ich mich so spät gemeldet habe hier:


    [19:15:37]


    [19:15:37] ---------------------------


    [19:15:37] MySQL Debugging activated (03/09/13)


    [19:15:37] ---------------------------


    [19:15:37]


    [19:15:56] >> mysql_real_escape_string( Connection handle: 1 )


    [19:15:56] CMySQLHandler::EscapeString(Dwayne_Pacino); - Escaped 13 characters to Dwayne_Pacino.


    [19:15:56] >> mysql_query( Connection handle: 1 )


    [19:15:56] CMySQLHandler::Query(SELECT * FROM accounts WHERE Name = 'Dwayne_Pacino') - Successfully executed.


    [19:15:56] >> mysql_store_result( Connection handle: 1 )


    [19:15:56] CMySQLHandler::StoreResult() - Result was stored.


    [19:15:56] >> mysql_num_rows( Connection handle: 1 )


    [19:15:56] CMySQLHandler::NumRows() - Returned 0 row(s)


    [19:16:00] >> mysql_real_escape_string( Connection handle: 1 )


    [19:16:00] CMySQLHandler::EscapeString(Dwayne_Pacino); - Escaped 13 characters to Dwayne_Pacino.


    [19:16:00] >> mysql_real_escape_string( Connection handle: 1 )


    [19:16:00] CMySQLHandler::EscapeString(Bonita2012); - Escaped 10 characters to Bonita2012.


    [19:16:00] >> mysql_query( Connection handle: 1 )


    [19:16:00] CMySQLHandler::Query(INSERT INTO accounts (Name, Passwort) VALUES ('Dwayne_Pacino', 'Bonita2012')) - Successfully executed.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Level); - Escaped 5 characters to Level.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(); - Escaped 0 characters to .


    [19:17:47] >> mysql_query( Connection handle: 1 )


    [19:17:47] CMySQLHandler::Query(UPDATE accounts SET Level = '0' WHERE Name = '') - Successfully executed.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Geld); - Escaped 4 characters to Geld.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(); - Escaped 0 characters to .


    [19:17:47] >> mysql_query( Connection handle: 1 )


    [19:17:47] CMySQLHandler::Query(UPDATE accounts SET Geld = '0' WHERE Name = '') - Successfully executed.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Kills); - Escaped 5 characters to Kills.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(); - Escaped 0 characters to .


    [19:17:47] >> mysql_query( Connection handle: 1 )


    [19:17:47] CMySQLHandler::Query(UPDATE accounts SET Kills = '0' WHERE Name = '') - Successfully executed.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Tode); - Escaped 4 characters to Tode.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(); - Escaped 0 characters to .


    [19:17:47] >> mysql_query( Connection handle: 1 )


    [19:17:47] CMySQLHandler::Query(UPDATE accounts SET Tode = '0' WHERE Name = '') - Successfully executed.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(accounts); - Escaped 8 characters to accounts.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Health); - Escaped 6 characters to Health.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.


    [19:17:47] >> mysql_real_escape_string( Connection handle: 1 )


    [19:17:47] CMySQLHandler::EscapeString(); - Escaped 0 characters to .


    [19:17:47] >> mysql_query( Connection handle: 1 )


    [19:17:47] CMySQLHandler::Query(UPDATE accounts SET Health = '0.0' WHERE Name = '') - Successfully executed.

  • UPDATE accounts SET Health = '0.0' WHERE Name = ''
    (die zeile ist jetzt nurn beispiel )
    Warum steht da nicht UPDATE accounts SET Health = '0.0' WHERE Name = 'Dwayne_Pacino'
    Nach meinem müsste das eig so hier stehn


    (Falls ich mich jetzt irre dann tut mir das leid ich bin grad erst wach ;) )