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
  • Hallo Maddin,


    danke für das Tutorial, bin schon weit gekommen,
    aber ich bleibe bei folgendem stecken:

    Zitat

    In diesem Fenster klickt ihr dann auf den Button mit den 3 Punkten und Wählt dann die Datei Database.sql aus die ich am ende des Thread angehängt habe und drückt dann auf Start.


    Ich finde die Datei nicht und kann sie nirgends finden/herunterladen.



    LG
    Pille

  • 6/10 Punkte


    Wenig brauchbare erklärung, viel Copy & Paste. Aber ansonsten nicht so schlecht.


    Hinweis, an alle die dieses Tutorial befolgen:
    Diese Art der handhabung von MYSQL Daten ist nur für kleine Datenmengen und vorallem kleine Server in Gebrauch zu nehmen! Es wurde für Anfänger vereinfacht, trozdem hat diese Art der Handhabung der Datenbank ein riesen Problem, nämlich die Ressourcen! Sollte man es wirklich wagen, ganze Spieleraccounts und damit große Mengen an Daten schreiben zu wollen, läuft man Gefahr den eigenen Root zum Absturz zum bringen & die Datenbank gleich mit. Durch diese Stocks macht man viel zu viele Verbindungen, da diese leider wie dini Funktionieren. Ich weiß, dass dieses Tutorial dazu dient, dass man neulinge rein bringt, aber mit so einer Methode hat es keinen Sinn, da man nur dafür sorgt, dass ein Script dadurch für abstürze sorgen kann, sobald man eine Massenspeicherung vornimmt.


    Kleine Erklärung um welches Problem es hier genau geht:
    Wir nehmen mal an, dass ihr einige Daten Speichern wollt, wie Level, Geld, Adminrang und Skin. Optimal sollte man folgendes machen:
    - Man stellt eine Verbindung mit dem Mysql Server her.
    - Man holt die Daten vom Level, Geld, Adminrang und Skin.
    - Man packt diese in einem 'Query'.
    - Sendet es an dem MYSQL Server
    - Schließt die Verbindung.


    So, nun kommen wir zur dieser Methode:
    - Man erstellt eine Verbindung mit dem MYSQL Server her.
    - Man holt die Daten vom Level.
    - packt diese in einem Query
    - Sendet es an dem MYSQL Server
    - Schliesst die Verbindung


    - Man erstellt eine Verbindung mit dem MYSQL Server her.
    - Man holt die Daten vom Geld.
    - packt diese in einem Query
    - Sendet es an dem MYSQL Server
    - Schliesst die Verbindung


    - Man erstellt eine Verbindung mit dem MYSQL Server her.
    - Man holt die Daten vom Adminlevel.
    - packt diese in einem Query
    - Sendet es an dem MYSQL Server
    - Schliesst die Verbindung


    - Man erstellt eine Verbindung mit dem MYSQL Server her.
    - Man holt die Daten vom Skin.
    - packt diese in einem Query
    - Sendet es an dem MYSQL Server
    - Schliesst die Verbindung


    Wie ihr seht, desto mehr User + Daten ihr an dem Server schicken wollt, desto mehr Verbindungen müsst ihr in einer Gewissen Zeit erstellen, das kann zum massiven Lag oder gar Absturz bringen, besonders wenn mehrere User auf einmal Disconnecten sollten, sei es wegen einem Cheater, Fehler oder Massenkick.



    Daher bitte ich den Ersteller des Tutorials, diesen Hinweis anzukletten, da sonst neulinge viel Arbeit in Datenverarbeitung investieren um dann später herauszufinden, dass diese nur den Server damit zum Absturz oder zum 'laggen'. Ich hoffe, dass ich einigen Usern damit helfen konnte.


    mfg Blunt

  • viel Copy & Paste.


    Das hat er gemacht, da man als anfänger kein Stock erstellen kann wo man die Ganzen daten des Speielrs aus die Datenbank holt

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Dieses Tutorial ist gedacht um Anfängern den Einstieg in die Nutzung von MySQL in Verbindung mit PAWN zu erleichtern. Wer die Erwartung hat, er könnte, nachdem er das Tutorial mal eben überflogen hat, sofort durchstarten und wäre der SQL-Flüsterer schlechthin, der irrt sich.
    Die Funktionen sind so aufgebaut, weil man dadurch den vergleich zu z.b den Funktionen von dini und co. hat.
    Eigentlich wollte ich auch noch einen zweiten Teil des Tutorials schreiben, der speziell auf die gängigsten Statements wie z.b INSERT, SELECT, UPDATE, DELETE eingeht. Aber bis jetzt bin ich noch nicht dazu gekommen das fertig zu stellen, und ich bin auch nicht sicher ob das sinnvoll ist. Schließlich ist das alles in der MySQL-Dokumentation ausführlich und auf deutsch erklärt.


    Blunt:
    Wie kommst du darauf, das jedes mal eine neue Verbindung hergestellt wird?

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Gutes Tutorial & Gut Erklärt. Jedoch glaube ich nicht, dass Jemand 999999999 Morde erziehlt :), Ich würde die Reservierten Stellen pro Zeile etwas runterschrauben, so kann auf Dauer und mit mehr Usern mehr Speicher frei werden.


    mfg

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

  • Ihr System weißt meinem Script viele Fehler auf.


    Hier mein Thread wo ich alles erkläre


  • Lieber Maddin,


    ich habe nun mal dein Tutorial ein wenig umgeschrieben (Save Funktion)



    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    //Nun speichern wir die Daten in der Datenbank.
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); // MADDIN DAS IST WICHTIG :P
    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;
    }


    das
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    ist sehr wichtig damit pName auch ausgelesen wird!