MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)
-
-
danke konnte beide fehler in wenigen minuten fixxen
die fehler waren die dümmsten die man nur hätte machen können, deshalb verschweige ich sie besser -
Mhh
Hab mich gerade auch mal an mysql versucht.
Jedoch kommt der Error das mysql_query nicht deklariert/definiert ist. -
Ich nehme mal an, dass du das MySQL Plugin R7 von BlueG / G-sTyLeZzZ heruntergeladen hast.
Die R7 unterstützt nur noch sog. "threaded scripts".Für das Tutorial hier einfach eine ältere Version (bspw. R6 oder R5) verwenden.
Wer sich mit der R7 beschäftigen bzw. ihre Vorteile nutzen will, kann sich dieses (englische) Tutorial mal anschauen:
Using BlueG's MySQL plugin R7 (with cache) -
Hab mich jetzt kurzfristig umentschieden.
Ich möchte doch lieber die r7 verwenden.Aber was ist mit threaded scripts gemeint?
Und was soll das dbHandle? -
Hallo Maddin,
danke für das Tutorial, bin schon weit gekommen,
aber ich bleibe bei folgendem stecken:ZitatIn 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 -
Keine Ahnung warum so viele Probleme damit haben die zu finden. Steht doch alles am ende des Tutorials ._.
7. Abschluss -
Ich finde sie trotzdem nicht...
Nur eine accounts.sql aber keine Database.sql.... -
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 VerbindungWie 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 -
Ich habe es geschafft, einen MySQL Server mit dem Script zu erstellen,
jedoch kann ich MySQL dank dank der mangelnden Erklärung nur
zum Account erstellen/editieren benutzen. -
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? -
meh, schlampig erklärt von mir, my bad.
Meinte eher, dass man zuviele Querries auf dem MYSQL server donnert, mit der Methode. Es macht nicht nur die Speicherung ultra Lahm, sondern belastet den MYSQL Server stark.
-
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
-
Ihr System weißt meinem Script viele Fehler auf.
Hier mein Thread wo ich alles erkläre
ZitatLiebes SA:MP Forum,
ich habe einen sehr Großes Problem was mein Script angeht,
ich habe mein Godfather Script auf MySQL umgeschrieben und nun
gibt es ein sehr Großes Problem.Problem?
Wenn sich ein Spieler Registriert wird er Natürlich in der Datenbank gespeichert,
wenn jedoch dieser Spieler das erste mal denn Server Verlässt werden seine Daten (z.B. Das Geld)
nicht Gespeichert. Wenn er wieder drauf kommt hat er überall 0 bis auf die Häuser Schlüssel und Bizzes.
Wenn er das zweite mal wieder Online ist Speichert das System alles.Woran kann dies liegen? Unsere Speicherung läuft Normal Perfekt!
Liebe Grüße,
Phönix -
Hab mal eine frage, wie tut man gescheit bool werte speichern und laden lassen?
-
BOOELAN als Datentyp und wie man das bei SA-MP Scriptet weiß ich nicht.
mfg
-
Hab mal eine frage, wie tut man gescheit bool werte speichern und laden lassen?
beim laden musst du strval benutzen und den string in einen integer umwandeln und danach abspeichern oder laden
-
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! -
Der name wird bereits bei LoadPlayer gespeichert, wozu also nochmal?