Heyho. Heute möchte ich euch mal erklären wie man mit MySQL bei Pawn arbeitet, in dem ich euch erkläre wie man ein kleines Login & Register System bastelt das auf MySQL basiert
1. Was ist MySQL, und warum sollte ich das benutzen?
MySQL steht für My Structured Query Language, was auf deutsch so viel heißt wie Strukturierte Abfragesprache. Strukturiert deshalb, weil es sich dabei ganz einfach um ein Tabellen System handelt. Das heißt ihr Speichert alle Daten in einer unbegrenzt* großen Tabelle bzw. in unbegrenzt* vielen Tabellen, und könnt jeden wert so wie ihr es wollt abfragen, ändern, löschen etc.. Zudem ist es auch sehr übersichtlich
Mal als kleines Beispiel:
So sieht z.b eine Spieler Datei aus wenn man per ini speichert:
Und bei MySQL Sieht das dann so aus:
[table=6]
[*]Name
[*]Level
[*]Geld
[*]Kills
[*]Tode
[*]Health
[*]Maddin
[*]1
[*]50000
[*]5
[*]3
[*]100.0
[*]Hans
[*]2
[*]100000
[*]50
[*]31
[*]100.0
[*]Peter
[*]1
[*]500
[*]1
[*]100
[*]100.0
[/table]
Wie ihr seht wird bei MySQL eine einfache Tabelle angelegt, und es werden direkt alle Spieler untereinander gespeichert und nicht wie bei ini das man für jeden Spieler eine eigene Datei erstellen muss. Das ist auch äußerst praktisch wenn man zum Beispiel mal nachsehen will wer alles Admin Rechte hat, was ja bei ini etwas schwierig wird da man jede Datei einzeln öffnen muss.
Ok, jetzt solltet ihr ungefähr wissen wie es funktioniert. Aber warum das ganze? Ich mein, mein Script läuft gut mit ini und da jetzt 100 Sachen um zu Scripten ist mir viel zu viel Arbeit...
Die Frage lässt sich ganz gut mit stichworten beantworten.
MySQL ist
- Schneller als die ganzen File Systems (dini, fini, SSI etc.)
- Übersichtlicher und leichter zu kontrollieren wenn etwas nicht stimmt
- Extern!
Extern? Ja genau, extern. MySQL wird auf einer MySQL-Datenbank gespeichert, welche sich auch extern bearbeiten lässt. Das heißt wenn ihr bei den Meisten Hostern nur zugriff über Web-FTP auf eure Dateien habt, könnt ihr MySQL auch über Programme die auf eurem PC installiert sind bearbeiten. Zudem gibt es auch viele andere Programmier- sprachen die auf MySQL zugreifen können. So könnt ihr zum Beispiel ein Control Panel per php erstellen was die Werte aus der Datenbank auslesen kann, ohne das diese auf dem Gleichen Server sein muss wie eurer Web Server. Aber das ist auch schon wieder eine andere Geschichte und darum gehts hier ja erst mal nicht
2. Installation von MySQL
Dieser schritt bezieht sich nur darauf, wenn ihr MySQL (zum Beispiel zum testen) auf eurem localen PC installieren wollt. Auf den meisten Servern ist es schon vor installiert (und wenn nicht einfach bei eurem Hoster nachfragen).
Als erstes müsst ihr dafür einen Localen MySQL Server erstellen. Das geht z.b ganz gut mit XAMPP. Wie ihr XAMPP Installiert wird hier gut erklärt, weshalb ich da hier nicht weiter drauf eingehen werde.
Habt ihr den MySQL Server gestartet müsst ihr nun irgendwie auf die Datenbank zugreifen. Dafür gibt es mehrere Möglichkeiten. Zum einen Über euren Web Browser per phphmyadmin, zum anderen über Programme. Ich bevorzuge das ganze mit einem Programm zu machen, da es dort übersichtlicher ist und für Anfänger sicherlich auch einfacher. Das Programm nennt sich Navicat und ist als Lite Version auch Kostenlos verfügbar. Lasst euch von dem "Lite" nicht abschrecken, das reicht für unsere Bedürfnisse völlig aus
Ok, nun haben wir einen MySQL Server und ein Programm um darauf zuzugreifen. Aber was nun? Jetzt werden wir als erstes das Programm mit dem Server verbinden.
Dafür öffnet ihr das Programm, geht oben auf File -> new Connection -> MySQL...
Nun öffnet sich ein Fenster wo ihr Sachen eintragen müsst. Als erstes der Connection Name. Hier könnt ihr eurer Fantasie freien lauf lassen und Theoretisch rein schreiben was ihr wollt. Der Name ist dafür da um später im Programm die Datenbank wieder zu finden, da sie unter diesem nahmen gespeichert wird.
Jetzt Host name/IP adress: Hier müsst ihr localhost rein schreiben, da ihr ja auf euren localen Server connecten wollt. Wenn ihr später auf die Datenbank eures Servers zugreifen wollt muss da natürlich eine andere Adresse rein. Der Port sollte 3306 sein. User Name ist der "Benutzername" der auf die Datenbank zugriff hat. Ihr könnt später auch mehrere Benutzer erstellen die dann zugriff haben. in unserem falle ist der Username root, und das Passwort wird leer gelassen da Standart mäßig kein Passwort eingestellt ist. Solltet ihr eins eingestellt haben werdet ihr es ja selbst wissen^^
So, nun seid ihr mit dem MySQL Server verbunden. Aber es ist keine Datenbank da. Deshalb werden wir diese jetzt erstellen. Als erstes macht ihr Links im Programm einen Doppelklick auf eure Datenbank (erkennt ihr an dem Namen den ihr eingestellt habt). Nun sollte euch eine Datenbank angezeigt werden die information_schema heißt. Von der lasst ihr bitte die Finger! Nun macht ihr rechts klick z.b unter die Datenbank (Hauptsache in ein leeres Feld) und wählt dann New Database. Nun öffnet sich wieder ein Fenster wo ihr den Namen der Datenbank einstellen müsst. Diesen könnt ihr auch wieder frei wählen, nehmt aber am besten einen Namen den ihr auch wieder findet und den Ihr zuordnen könnt. Also so was wie SAMP_DB oder GTA_DB. Die anderen Felder lasst ihr so wie sie sind und Drück dann auf Ok. Und schon habt ihr eine Datenbank.
3. Erstellen einer Tabelle
So. Nun fehlt uns nur noch eine Tabelle in der wir die Spieler speichern. Dafür machen wir Doppelklick auf unsere gerade erstelle Datenbank, und finden nun auf der Rechten Seite ein leeres Fenster vor. In dieses leere Fenster macht ihr nun Rechtsklick, und wählt Execute SQL FIle und es erscheint ein neues Fenster. 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. Sollte alles richtig sein steht in dem Fenster dann
[Msg] Finished - 2 queries executed successfully
--------------------------------------------------
Dann klickt ihr auf Close. Sollte das rechte Feld immer noch leer sein einfach rechts klick und Refresh klicken.Das sollte dann so aussehen:
Nun seht ihr eure erste Tabelle mit dem Namen accounts, wo ihr jetzt rechts klick drauf macht und dann auf Design Table klickt. Nun öffnet sich ein Fenster wo ich euch erklären kann wie genau das aufgebaut ist, damit ihr später auch neue Felder dazu machen könnt.
Das ganze Sollte nun so aussehen:
Die erste ziele ist die Auto Increment Spalte. Diese lassen wir so wie sie ist, da diese immer einen festen wert hat den wir nicht verändern.
In der nächste Zeile sehen wir den Namen. Name Steht für den Namen der Spalte. varchar sagt aus was für ein wert es ist. Normalerweise arbeiten wir mit int, varchar und float.
int = Integer (also eine Zahl)
varchar = string (also eine Zeichenkette, wie z.b ein Name oder ein Passwort)
float = ein Float wert (also eine zahl mit nachkomma stellen)
in unserem Fall ist es also varchar, also ein string. Als nächstes kommt die Länge. Da wir ja aus Pawno wissen das ein Name Maximal 24 Zeichen lang sein kann, ist in unserem falle das Feld auf 24 Zeichen groß. Der Rest ist für uns eigentlich unwichtig.
das gleiche ist nun auch bei den anderen Feldern, nur das dort dann halt int für Integer, also eine Zahl, oder float für einen Float wert steht.
So. Damit hätten wir erst mal unsere Datenbank fertig eingerichtet. Nun folgt der Skript teil.
4. Download & Installation des MySQL Plugins
So, nun haben wir eine Datenbank mit der wir arbeiten können. Aber was uns noch fehlt ist ein MySQL fähiges Skript. Also fangen wir mit dem Installieren des Plugin an.
Alles was ich in diesem Tutorial erkläre bezieht sich auf das MySQL Plugin R5 von G-sTyLeZzZ, wenn ihr also das von StrickenKid benutzt kann ich nicht dafür garantieren dass das auch so funktioniert.
Also brauchen wir nun folgende Dinge:
R5: Server Plugin (VS9)
und
libmysql.dll
Die libmysql.dll Datei kommt in den gleichen Ordner wo auch eure samp-server.exe Datei ist.
Die a_mysql.inc Datei kommt in euren pawno/includes Ordner zu den anderen Includes.
Und die mysql.dll Datei kommt in euren plugins Ordner.
Zu guter Letzt öffnen wir die Server.cfg Datei und fügen die Zeile "plugins mysql" hinzu, falls noch nicht vorhanden. Solltet ihr schon ein Plugin benutzen einfach mysql dazu schreiben und beides durch ein Leerzeichen trennen.