[jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)

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
  • Gutes Anfängertutorial.
    Allerdings fehlt ein gute Erklärung zur SQL-Syntax, was bei Anfängern, die andere Systeme als Login/Register erstellen wollen, oft zu Problemen führt.
    Desweiteren hätte man noch zu eine Seite verweisen können, die sämtliche SQL Befehle enthält.
    Dennoch, gute Arbeit.

  • Allerdings fehlt ein gute Erklärung zur SQL-Syntax, was bei Anfängern, die andere Systeme als Login/Register erstellen wollen, oft zu Problemen führt.
    Desweiteren hätte man noch zu eine Seite verweisen können, die sämtliche SQL Befehle enthält.

    Danke für den Hinweis, ich werde das in den nächsten Tagen hinzufügen.

  • Wie soll ich die Funktion jetzt schreiben?


    if(cache_get_row_count() == 0)


    Weil es gibt ja eine neue Funktion und bei mir kommt immer dieser Warning:


    Warning 202: number of arguments does not match definition...

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Verwende mal das MySQL R40 Include / Plugin.

  • Wie soll ich die Funktion jetzt schreiben?


    Das musst du mit dem neuen R40 jetzt so schreiben:
    new rows;cache_get_row_count(rows);if(rows == 0)


    Ich werde im Laufe der nächsten Tage das Tutorial an die R40 Version anpassen.


    ==================================================================================


    Allerdings fehlt ein gute Erklärung zur SQL-Syntax, was bei Anfängern, die andere Systeme als Login/Register erstellen wollen, oft zu Problemen führt.
    Desweiteren hätte man noch zu eine Seite verweisen können, die sämtliche SQL Befehle enthält.


    Ich habe beides in Form von Verweisen zu Kapitel 3 hinzugefügt. Nochmals Danke für den Hinweis.


    ==================================================================================
    ==================================================================================
    ==================================================================================






    Hallo Zusammen,


    ich habe soeben das Tutorial auf die neuste Version (R40) angepasst.
    Durch die neue Version des MySQL Plugins haben sich einige Änderungen ergeben.
    Für das Upgrade von R39-3 (vorheriger Stand des Tutorials) auf R40 (aktueller Stand des Tutorials) sind folgende Anpassungen am Beispielcode notwendig (im Tutorial und Download bereits angepasst):


    Der MySQL handle Variable wurde der Tag "MySQL" hinzugefügt. Dies muss bei der Deklaration angepasst werden.
    new handle; //Die Connection-Handle, über die wir später auf die Tabellen der Datenbank zugreifen
    zu:new MySQL:handle; //Die Connection-Handle, über die wir später auf die Tabellen der Datenbank zugreifen


    Durch diverse Anpassungen wurde auch cache_get_row_count verändert. Diese gibt nun nicht mehr den Wert direkt zurück, sondern über einen Parameter. Der Code muss entsprechend angepasst werden.
    if(cache_get_row_count() == 0)
    zu:new rows;
    cache_get_row_count(rows);
    if(rows == 0)

    Die gleiche Änderung hat auch cache_get_field_content_int erfahren und muss daher ebenfalls wie folgt angepasst werden.
    PlayerInfo[playerid][p_id] = cache_get_field_content_int(0, "id", handle);
    zu:cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
    Bitte beachtet, dass dies natürlich bei allen cache_get_field_content_int's gemacht werden muss, nicht nur bei der "id".
    Zudem haben sich auch die anderen Cache-Funktionen in gleicher Weise geändert. Solltet Ihr also diese Funktionen ebenfalls verwenden (siehe Changelog), dann müsst Ihr diese auch anpassen.


    In mysql_log wurde der Parameter entfernt und muss daher aus dem Code genommen werden.
    //mysql_log(LOG_ALL); //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren
    zu://mysql_log(); //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren



    Jetzt die wichtigste Änderung! Hier wurde die Datenbank und das Passwort vertauscht. Auf diese Änderung macht Euch auch der Compiler nicht aufmerksam, vergesst dies also bitte nicht, sonst kann der Server keine Verbindung zur Datenbank herstellen.
    handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DBSE, MYSQL_PASS);
    zu:handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);


    Außerdem muss in dem Informationsprint der handle noch der Tag entfernt werden, um einen Tag-Mismatch zu verhindern.
    printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", handle);
    zu:printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);



    Außerdem ist es nun zwingend notwendig, die aktuelle libmysql.dll sowie die neue log-core.dll Datei im Hauptordner des Servers zu haben. Ansonsten lädt der Code nicht.



    Alle Änderungen findet Ihr hier:
    https://github.com/pBlueG/SA-MP-MySQL/releases/tag/R40


    Ich zähle daher hier nicht nochmal alle Änderungen auf. Falls Ihr Fragen zu den Änderungen habt könnt Ihr gerne wie gewohnt hier nachfragen, ebenso falls es bei der Konvertierung von R39-3 zu R40 Probleme gibt.
    Bitte beachtet, dass der in diesem Post angehängte Ordner "Beispiele_R39-3" für das untenstehende alte Tutorial ist. Die neue Version findet sich im Startpost!


    Viele Grüße,
    Jeffry 8)



    PS:
    Das Tutorial für MySQL R39-3 habe ich hier nochmal angehängt, falls es noch jemand benötigt. Ich empfehle aber die Nutzung der Version R40.

  • ich hab kleine Probleme beim umschreiben der MySQL Callbacks...


    Mein Compiler spuckt folgende Fehlermeldung aus:
    error 035: argument type mismatch (argument 2)


    In folgenden Zeilen:



    das selbe wie in diesen Zeilen:


    Habe ich einen Syntax fehler ?
    Vergleiche ständig mit dem Eintrag im SA:MP Wiki aber mir fällt jetzt nicht auf was ich da falsch gemacht haben könnte...


    Kann mir einer weiterhelfen?

  • Beitrag von Marschl ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Du speicherst das Kennwort im Register Dialog in einer Spielervariable ab und liest es dann in dem anderen Dialog wieder aus, in dem dann das INSERT Query steht.



    ==============================



    EDIT:


    Das Tutorial wurde von der MySQL Plugin Version R40 auf die Version R41 aktualisiert.
    Es sind keine Änderungen am Standard-Code des Tutorials notwendig, wenn von R40 auf R41 aktualisiert wird.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()