MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)

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
  • Habe das auf meinem Computer, habe dann noch die R5 MySql dateien genommen, habe die Verbindung getestet, alles Super, nur beim Login bekomme ich direkt eine verbindung zum Server wurde unterbrochen Warnung. Warum ist das so ?

  • Dann hast du was falsch gemacht....


    Ich habe das Porblem ganz schnell gelöst mach einfach bei den Requestclass die Setspawninfo sachen rein und das mit den Dialog zeug bei OnPlayerConnect rein

  • Okay, habe das nun auch gelöst, und habe das von OnPlayerRequestClass nach OnPlayerConnect gewechselt.


    Desweiteren habe ich den stock umgeschrieben wegen den negativen betrag, weil der ja Buggy war, nun sollte auch das Geld was im Minus ist gelesen werdn


    stock mysql_GetInt(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 strval(Get);
    }


    //Edit, nein er liest noch immer nicht das Geld , es steht bei mir 0$ obwohl ich in der Datenbank -1500 geschrieben habe.

  • ja du musst GivePlayerMoney=XXXXXXXXXXXXXXX
    und beim Speichern GetPlayerMoney

  • Angelo, ich hatte einmal von dir ein MySQL System gekauft, besteht da eigentlich noch Supportanspruch ?

  • warum nicht ich wollte dir zwidurch mal ne PN senden aber du hast mich ignoriert

  • Hübsches Tutorial, allerdings wird nichts wirklich erklärt, was es z.B. schwer macht, die mysql_query-Funktion auf mysql_function_query umzuschreiben.

    the ones who are crazy enough to think that they can change the world, are the ones who do
    - Steve Jobs

  • Eine Frage:


    Geht dieses auch mit SA:MP 0.3e RC4?
    Denn ich erhalte diesen Fehler:


    Code
    [16:24:53] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
    [16:24:53] <-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!
    [16:24:53] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
    [16:24:53] <-| [MYSQL] Der Server wird nun beendet!


    MySQL Logindaten sind 100% richtig gesetzt und die Firewall blockt es auch nicht.
    Habe es Bereits schon mit allen Version der MySQL Plugins versucht.


    Edit:// Hat sich erledigt geht irgendwie nur mit dem Benutzer "root". (Obwohl die anderen auch alle nötigen rechte hatten.)
    Für das Tut: 10/10 ^^


    MFG, Marvo

    Einmal editiert, zuletzt von Marvo ()

  • Hei, wie funktioniert das nun, dass die Posiotion gespeichert wird?


    stock LoadPlayer(playerid)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    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]);
    SpielerInfo[playerid][Pos_X] = mysql_GetFloat("accounts", "XPos", "Name", SpielerInfo[playerid][Name]); //<--- Zeile 404
    SpielerInfo[playerid][Pos_Y] = mysql_GetFloat("accounts", "YPos", "Name", SpielerInfo[playerid][Name]); //<---Zeile 405
    SpielerInfo[playerid][Pos_Z] = mysql_GetFloat("accounts", "ZPos", "Name", SpielerInfo[playerid][Name]); //<---Zeile 406
    }
    return 1;
    }
    stock SavePlayer(playerid)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    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]);
    mysql_SetFloat("accounts", "XPos", x, "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "YPos", y, "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "ZPos", z, "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Interior", SpielerInfo[playerid][pInterior], "Name", SpielerInfo[playerid][pName]);
    print("gespeichert");

    }
    }
    return 1;
    }


    Habe aber 3 Errors:
    C:\Users\Dennis\Desktop\SAMP\gamemodes\sartdenninho.pwn(404) : error 017: undefined symbol "Pos_X"
    C:\Users\Dennis\Desktop\SAMP\gamemodes\sartdenninho.pwn(405) : error 017: undefined symbol "Pos_Y"
    C:\Users\Dennis\Desktop\SAMP\gamemodes\sartdenninho.pwn(406) : error 017: undefined symbol "Pos_Z"

    4 Mal editiert, zuletzt von User961 ()

  • Habe mir mal die Funktionen des Tutorials angeschaut und gesehen,da gibts ja einige Fehler die wahrscheinlich zu "Memory Leaks" führen :\.
    Du hast in einigen Funktionen kein mysql_free_result, glaube nicht,dass die Plugins das mitlerweile automatisch machen. Hab jedenfalls bei G-sTyLeZzZ nichts dazu gefunden außer :

    Zitat

    mysql_store_result
    Note: You have to use this function before fetching the result. Also don't forget to free result when you don't need it anymore with mysql_free_result() or you will get "commands out of sync" errors.


    Das fehlt nämlich bei mysql_CheckAccount und mysql_GetString. Komisch,dass es noch keinem aufgefallen ist. Der CPU oder RAM verbrauch hätte nämlich dadurch auf Dauer beeinflusst werden.
    Hab mir das Tutorial nicht durchgelesen,sondern nur die Funktionen :p.

  • Also bei mir Nach Registrieren oder Login Server close the connection....



    Kp was ich da machen kann xD


    Falsche Freunde: Fragen nach Kippen !
    Wahre Freunde: Sind der Grund, warum du keine Kippen hast !
    Falsche Freunde: Nennen deine Eltern Frau/Herr !
    Wahre Freunde: Nennen deine Eltern Mom/Dad !
    Falsche Freunde: Holen dich aus dem Knast und sagen dir, was getan hast, war falsch !
    Wahre Freunde: Sitzen in der Zelle neben dir und sagen: Scheiße...wir haben‘s verkackt...war aber verdammt lustig ! :P
    Falsche Freunde: Haben dich noch nie weinen sehen !
    Wahre Freunde: Weinen mit dir !
    Falsche Freunde: Werden dich stehen lassen, wenn die Menge das tut !
    Wahre Freunde: Werden der kompletten Menge den Arsch treten, die dich stehen gelassen hat ! c:
    Falsche Freunde: Bleiben für ne Weile !
    Wahre Freunde: Bleiben ein Leben lang !
    Falsche Freunde: Werden die Person, die Scheiße über dich erzählt, blöd vollabern !
    Wahre Freunde: Werden sie einfach ausknocken !
    Falsche Freunde: Werden das hier ignorieren !
    Wahre Freunde: Es Kopieren !