Tabellen erstellen (Script aus)

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
  • Guten abend,


    Und zwar funktioniert es nicht so ganz das er von Script au die Tabellen erstellt.


    Code:


    stock CreateTables()
    {
    new query[4000];
    strcat(query,"CREATE TABLE IF NOT EXISTS `Spielerdaten` (`id` int(11) NOT NULL AUTO_INCREMENT,`Username` varchar(24) NOT NULL, `Eingeloggt` int(2) NOT NULL,`Email` varchar(128) NOT NULL,`Passwort` varchar(34) NOT NULL,");
    strcat(query," `Geld` int(2) NOT NULL, `Level` int(2) NOT NULL NOT NULL,PRIMARY KEY (`id`))");
    mysql_function_query(Handle,query,false,"","");
    return 1;
    }
    Jeffry:


    Mfg

    Mit freundlichen Grüßen


  • Du hast hinter `level` int(2) 2x NOT NULL stehen, ist der einzige Fehler, den ich auf Anhieb sehe. Ansonsten bitte mal Serverlog posten.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • LeijaT:


    MySQL-Log


    SQL
    [21:29:35] [ERROR] mysql_connect - empty connection data specified
    [21:29:35] [ERROR] "mysql_errno" - invalid connection handle (id: 1)
    [21:29:35] [ERROR] "mysql_tquery" - invalid connection handle (id: 0)



    Serverlog



    SA-MP Dedicated Server
    ----------------------
    v0.3z, (C)2005-2014 SA-MP Team


    [21:29:35] filterscripts = "" (string)
    [21:29:35]
    [21:29:35] Server Plugins
    [21:29:35] --------------
    [21:29:35] Loading plugin: Streamer
    [21:29:35]


    *** Streamer Plugin v2.7.5.1 by Incognito loaded ***


    [21:29:35] Loaded.
    [21:29:35] Loading plugin: Sscanf
    [21:29:35]


    [21:29:35] ===============================


    [21:29:35] sscanf plugin loaded.


    [21:29:35] Version: 2.8.1


    [21:29:35] (c) 2012 Alex "Y_Less" Cole


    [21:29:35] ===============================


    [21:29:35] Loaded.
    [21:29:35] Loading plugin: Mysql
    [21:29:35] >> plugin.mysql: R39-2 successfully loaded.
    [21:29:35] Loaded.
    [21:29:35] Loaded 3 plugins.


    [21:29:35]
    [21:29:35] Filterscripts
    [21:29:35] ---------------
    [21:29:35] Loaded 0 filterscripts.


    [21:29:35] MySQL: Die Verbindung wurde erfolgreich hergestellt.
    [21:29:35] ----------------------------------
    [21:29:35] Number of vehicle models: 0

    Mit freundlichen Grüßen


  • LeijaT:


    #define MYSQL_HOST "127.0.0.1"
    #define MYSQL_USER "root"
    #define MYSQL_DATA "webauth"
    #define MYSQL_PASS ""


    public OnGameModeInit()
    {
    Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
    if(mysql_errno() < 1)print("MySQL: Die Verbindung wurde erfolgreich hergestellt."); else print("MySQL: Die Verbindung zur MySQL Datenbank konnte nicht hergestellt werden | Der Server wird nun heruntergefahren."), SendRconCommand("exit");
    CreateTables();
    return 1;
    }


    //e


    Neuer Error


    SQL
    [21:48:16] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`id`))' at line 1

    Mit freundlichen Grüßen


  • LeijaT:


    Habe nur Pass & Datenbank vertauscht nun kommt dieser Error:


    [21:48:16] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`id`))' at line 1

    Mit freundlichen Grüßen


  • Dann steht in deinem Query immer noch 2x NOT NULL direkt hintereinander, wie ich es bereits im ersten Post sagte :p


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Dann steht in deinem Query immer noch 2x NOT NULL direkt hintereinander, wie ich es bereits im ersten Post sagte :p



    Habe einen *,* vergessen.


    So nun wenn ich mich registrieren will kommt nichts in der Datenbank.


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new query[256], key[50];
    if(dialogid == DIALOG_REGISTER)
    {
    if(!response){return Kick(playerid);}
    if(strlen(inputtext) < 6 || strlen(inputtext) > 12)
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "{FFFFFF}Willkommen auf \n\nEs wurde kein Account unter diesem Namen gefunden, gib dein Passwort niemals weiter.\nAuch nicht an Supporter, Du kannst dich nun Registrieren.\nBitte gib nun dein Passwort ein:", "Register", "Abbrechen");
    SendClientMessage(playerid, Grau, "Dein Passwort ist zu kurz oder zu lang (mind 6 zeichen & max 12 Zeichen!");
    return 1;
    }
    format(key, 50, "%s", inputtext);
    mysql_escape_string(Spielername(playerid), Spielername(playerid)), mysql_escape_string(key, key);
    format(query, sizeof(query), "INSERT INTO (Name, Passwort) VALUES ('%s',MD5('%s')", Spielername(playerid), key);
    mysql_tquery(Handle, query);
    SendClientMessage(playerid, -1, "Dein Account wurde erstellt.");
    GivePlayerMoney(playerid, 50000),
    SetPlayerScore(playerid, 10);
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(!response){return Kick(playerid);}
    format(key, 50, "%s", inputtext);
    mysql_escape_string(Spielername(playerid), Spielername(playerid)), mysql_escape_string(key, key);
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE Name = '%s' AND password = '%s'", Spielername(playerid), key);
    mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
    }
    return 1;
    }

    Mit freundlichen Grüßen


  • Gewöhne dir bitte an, bei MySQL Problemen immer den Log mitzuposten.
    format(query, sizeof(query), "INSERT INTO (Name, Passwort) VALUES ('%s',MD5('%s')", Spielername(playerid), key);
    zu:
    format(query, sizeof(query), "INSERT INTO Spieler (Name, Passwort) VALUES ('%s',MD5('%s'))", Spielername(playerid), key);

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry () aus folgendem Grund: Tippfehler

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new query[256], key[50];
    if(dialogid == DIALOG_REGISTER)
    {
    if(!response) return Kick(playerid);
    if(strlen(inputtext) < 6 || strlen(inputtext) > 12)
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "{FFFFFF}Willkommen auf \n\nEs wurde kein Account unter diesem Namen gefunden, gib dein Passwort niemals weiter.\nAuch nicht an Supporter, Du kannst dich nun Registrieren.\nBitte gib nun dein Passwort ein:", "Register", "Abbrechen");
    SendClientMessage(playerid, Grau, "Dein Passwort ist zu kurz oder zu lang (mind 6 zeichen & max 12 Zeichen!");
    return 1;
    }
    format(key, 50, "%s", inputtext);
    mysql_escape_string(Spielername(playerid), query);
    mysql_escape_string(key, key);
    format(query, sizeof(query), "INSERT INTO Spieler (Name, Passwort) VALUES ('%s',MD5('%s'))", query, key);
    mysql_tquery(Handle, query);
    SendClientMessage(playerid, -1, "Dein Account wurde erstellt.");
    GivePlayerMoney(playerid, 50000),
    SetPlayerScore(playerid, 10);
    return 1;
    }
    if(dialogid == DIALOG_LOGIN)
    {
    if(!response) return Kick(playerid);
    format(key, 50, "%s", inputtext);
    mysql_escape_string(Spielername(playerid), query);
    mysql_escape_string(key, key);
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE Name = '%s' AND password = '%s'", query, key);
    mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
    return 1;
    }
    return 1;
    }


    Wenn es so auch nicht geht, poste bitte den MySQL Log der kommt, wenn du dich registrieren willst.

  • Jeffry:


    So geht nun alles.


    Aber jedesmal kommt das Passwort falsch ist.


    if(dialogid == DIALOG_LOGIN)
    {
    if(!response){return Kick(playerid);}
    format(key, 50, "%s", inputtext);
    mysql_escape_string(Spielername(playerid), Spielername(playerid)), mysql_escape_string(key, key);
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE Name = '%s' AND Passwort = '%e'", Spielername(playerid), MD5_Hash(key));
    mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
    }

    Mit freundlichen Grüßen