MySQL Registersystem [BlueG R8+ (R26)]

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
  • Schau dir mal an wie viele 'SELECT'-Querys vor der Optimierung und wie viele danach insgesamt abgeschickt werden. Queries brauchen Zeit bis sie verarbeitet wurden, je weniger Queries benutzt werden desto weniger Zeit wird verbraucht desto höher ist die Performance.


    NicoAiko, du kannst deine Variablen so benennen wie du willst, aber normalerweise benennt man Konstanten in Großschrift.
    Zu der Passwort-Sache, niemand ist so bescheuert und speichert unverschlüsselt Passwörter. Und als ob man eine Query, die an einen Server geschickt wird, nicht abfangen könnte und dort das Passwort ablesen könnte. Von daher versteh ich da nicht ganz, was du da dran jetzt nicht magst.

  • Schau dir mal an wie viele 'SELECT'-Querys vor der Optimierung und wie viele danach insgesamt abgeschickt werden. Queries brauchen Zeit bis sie verarbeitet wurden, je weniger Queries benutzt werden desto weniger Zeit wird verbraucht desto höher ist die Performance.


    NicoAiko, du kannst deine Variablen so benennen wie du willst, aber normalerweise benennt man Konstanten in Großschrift.
    Zu der Passwort-Sache, niemand ist so bescheuert und speichert unverschlüsselt Passwörter. Und als ob man eine Query, die an einen Server geschickt wird, nicht abfangen könnte und dort das Passwort ablesen könnte. Von daher versteh ich da nicht ganz, was du da dran jetzt nicht magst.




    Es sind gerade mal 2 querys dennoch brauchst du hier kein cache_set_active verwenden das ist überflüssig.
    Klar kann man das absenden des einen querys raus kicken obwohl dies eigentlich eine der schnellsten methoden ist abzuprüfen ob ein eintrag existiert oder nicht.
    Ich sag dir sogar das man bei deinem SQL Befehl was abändern kann und zwar LIMIT 1 hinzufügen dann springt mysql nicht weiter nachdem es ein Eintrag gefunden hat.
    Ich möchte mal noch anmerken das man die performance von den Befehlen erhöhen kann es kommt als auf das zusammen spiel der jeweiligen befehle drauf an die jeder unterschiedlich verarbeitet wird vom MySQL Server.


    Man kann sich nun weiter über die performance streiten das ist ehrlich gesagt immer möglich ^^ aber das tutorial ist so doch eigentlich für anfänger gut genug es erfüllt den zweck und er hat es gut gemacht.

  • Im Endeffekt wollte ich auch nur auf die neuen Funktionen hinweisen. Ja es sind 2 kleine Queries die man spart, aber wenn sich ein Anfänger anschaut wie man so Queries spart, spart er sich Scriptarbeit und hat am Ende auch noch eine bessere Performance. Das merkt er sich und benutzt es weiterhin so, hat (wenn er jetzt sein erstes Gamemode macht) am Ende viel Mühe gespart. Mir geht es nur darum auf die neuen Funktionen aufmerksam zu machen.

  • Im Endeffekt wollte ich auch nur auf die neuen Funktionen hinweisen. Ja es sind 2 kleine Queries die man spart, aber wenn sich ein Anfänger anschaut wie man so Queries spart, spart er sich Scriptarbeit und hat am Ende auch noch eine bessere Performance. Das merkt er sich und benutzt es weiterhin so, hat (wenn er jetzt sein erstes Gamemode macht) am Ende viel Mühe gespart. Mir geht es nur darum auf die neuen Funktionen aufmerksam zu machen.


    Da hast du vollkommen Recht ^^ die Verwendung zu zeigen war auch eine sehr gute Idee und auf diese neue Funktion aufmerksam zu machen mir ging es eigentlich darum das du meintest das cache_set_active( und die weitere passenden funktionen dazu) hier die performance steigert was es nicht tut klar kann man in manchen Bereichen
    dadurch unnötige Querys sparen da steigerst du dan die Performance ein Beispiel was mir auf die schnelle einfallen würde dazu wäre bei einem Serverrestart da kann man den MySQL server zusätzlich noch schohnen wenn die spieler wieder auf den Server connecten.

  • Ja macht es


    Grund ist, dass es länger dauert eine Aktion über eine Funktion auszuführen als sie direkt auszuführenm
    ist doch logisch oder?


    Funktionen sind langsam bringen aber struktur rein und erleichtern die arbeit ungemeint falls man bestimmte Code abschnitte öfter benutzt.


    So muss man z.b. nicht immer speichern sondern kann die Funktion fürs speichern aufrufen


    Gruß

    ik bin der vito c:

  • Bei mir Startet sich jetzt der Server, alles okay. Nur steht bei SA:MP Mode: Unknown. Alles eingetragen richtig, an MySQL Daten oder Plugins kann es nicht liegen.





    [03:53:38] [ERROR] ExecuteT[LoadPlayerDataSequence(dd)] - (error #1146) Table 'testserversamp.User' doesn't exist

    Meine Tabelle heißt aber nur testserversamp. Das .User macht das Script von alleine, warum?


    E:


    Jetzt kommt:


    Code
    [03:59:32] [ERROR] "mysql_format" - invalid connection handle. (ID = 0).
    [03:59:32] [ERROR] "mysql_tquery" - invalid connection handle. (ID = 0).

    3 Mal editiert, zuletzt von Andrzejxy' () aus folgendem Grund: log 3

  • Ja, du erstellst eine Tabelle in der genannten Datenbank.
    Der Name der Tabelle lautet User und die Spalten der Tabelle müssen auch genauso heißen wie die genannten im Script.

  • Moin,
    habe Fehler:


    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(51) : error 017: undefined symbol "mycon"
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(74) : error 017: undefined symbol "User"
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(74) : warning 215: expression has no effect
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(74) : error 001: expected token: ";", but found "]"
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(74) : error 029: invalid expression, assumed zero
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(74) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Zeile 51:
    mycon = mysql_connect("127.0.0.1","Username","Database","Passwort");


    Zeile 74:
    GetPlayerName(playerid,User[playerid][Username],MAX_PLAYER_NAME);


    Ich hoffe jemand kann sie beheben.


    Behoben.


    Neue Fehler:


    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(121) : warning 217: loose indentation
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(296) : warning 217: loose indentation
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(304) : warning 217: loose indentation
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(324) : warning 217: loose indentation
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(328) : error 027: invalid character constant
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(328) : error 027: invalid character constant
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(332) : warning 217: loose indentation
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(384) : error 027: invalid character constant
    C:\Users\Home\Desktop\Allgemein Scripting oder SAMP\Neue Gamemode für SA-MP.de vllt\gamemodes\Selfmade.pwn(384) : error 027: invalid character constant
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Zeile 121:
    ResetPlayerVariables(playerid); // Das Resetten kann eine lange Liste werden und auch das finde ich im unteren Bereich angenehmer


    Zeile 296:
    if(!strlen(inputtext) || strlen(inputtext) < 3 || strlen(inputtext) > 25) // Für Anfänger (nehmen wir diese!)


    Zeile 304:
    new query[128+MAX_PLAYER_NAME], year, month, day;


    Zeile 324:
    if(!strlen(inputtext) || strlen(inputtext) < 3 || strlen(inputtext) > 25) // Wie gesagt, Für Anfänger


    Zeile 328:
    ShowPlayerDialog(playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "{00FF00}[Passwort Eingabe - Loginsequenz]","{FFFFFF}Bitte geben Sie Ihr Passwort ein!\{FF0000}Es hat mindestens 3 Zeichen!","Login","Abbrechen");


    Zeile 332:
    new query[80 + MAX_PLAYER_NAME];


    Zeile 384:
    ShowPlayerDialog(playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "{00FF00}[Passwort Eingabe - Loginsequenz]","{FFFFFF}Bitte geben Sie Ihr richtiges Passwort ein!\{FF0000}Die vorherige Eingabe war falsch!","Login","Abbrechen");


    Ich hoffe ihr könnt es beheben.


    MfG

    Einmal editiert, zuletzt von Converter ()

  • Die loose indentation Warnings sind einrückfehler - diese lassen sich mit der TAB-Taste einrücken.
    Die anderen musst du gucken. Dort ist ein Backslash (\) Dort fehlt ein n ->( \n).
    MfG

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen