Beiträge von Simon

    Ich habe es nun so und schaue mal was passiert:


    stock Connect_To_Database()
    {
    new MySQL:connection = mysql_init(LOG_ONLY_ERRORS, 1);
    mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA, connection);
    if(mysql_ping()) print("[MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    else
    {
    print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("[MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
    mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA, connection);
    if(mysql_ping()) print("[MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
    else
    {
    print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("[MYSQL] Der Server wird nun beendet!");
    SendRconCommand("exit");
    }
    }
    return 1;
    }


    //Edit:


    Deins würde so nicht funktionieren weil mysql_ping() die funktion ist und dort keine parameter drinne stehen.


    Habs nun so und bin nicht gerade zuverlässig, das das was ändert. Aber ich kann mir vorstellen das er mich verbindet es nur falsch ausspuckt...


    stock Connect_To_Database()
    {
    new connected;
    connection = mysql_init(LOG_ONLY_ERRORS);
    connected = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA, connection);
    if(connected == 1) print("[MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    /*
    if(mysql_ping() == 1) print("[MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    else
    {
    print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("[MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
    mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA, connection);
    if(mysql_ping() == 1) print("[MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
    else
    {
    print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("[MYSQL] Der Server wird nun beendet!");
    SendRconCommand("exit");
    }
    }*/
    return 1;
    }

    Ich weiß :D


    Habe gerade die prints verschoben und dabei ausversehen 1-2 ' " 's vertauscht.


    Ist aber nicht der fehler, der printet mir ganz normal in der serverlog nachdem ich nun die vorherigen Probleme gelöst habe das er keine Verbindung aufbauen kann. Die Daten sind 1000%ig richtig.
    Was kann noch die Verbindung verhindern? mit dem BlueG klappt es wunderbar.

    Es bleibt nur noch ein Fehler:


    Er verbindet nicht mit der Datenbank und die Daten sind 100%ig richtig. Wir haben genau die selben mit dem BlueG plugin benutzt und dort gab es keine Probleme.


    Hier trotzdem der Code:


    #define SQL_HOST "127.0.0.1"
    #define SQL_USER "root"
    #define SQL_PASS "***"
    #define SQL_DATA "Samp"


    public OnGameModeInit()
    {
    Connect_To_Database();
    return 1;
    }


    stock Connect_To_Database()
    {
    connection = mysql_init(LOG_ONLY_ERRORS);
    mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA, connection);
    if(mysql_ping() == 1) print("[MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
    else
    {
    print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("[MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
    mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA, connection);
    if(mysql_ping() == 1) print("[MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
    else
    {
    print("[MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
    print("[MYSQL] Der Server wird nun beendet!");
    SendRconCommand("exit");
    }
    }
    return 1;
    }

    Na der Server startet aber wird halt geschlossen.
    Durch den immernoch bestehenden Befehl kann er auch garnicht mit der Datenbank connecten, weswegen der Server direkt beendet wird.


    So entnehme ich das der ServerLog:

    Guten Tag.


    Ich bin umgestiegen von BlueG auf StrickenKid und benutze dort die Static version aufgrund des Problems mit libmysqlclient_r.so.X.
    Das Plugin wird vernünftig geladen, jedoch kann er keine Verbindung zum Server aufbauen:


    Zitat

    MySQL] Error (0): Failed to connect. Can't connect to local MySQL server through socket '/tmp/mysql.sock'

    Ah Das ist natürlich sehr kurz :)


    Wenn ich da so splitte dann packt er mir die Werte der Felder nacheinander in der Reihenfolge der enum rein oder?


    Also bei:

    enum
    {
    name,
    level,
    passwort,
    }

    würde er mir feld0 in name, feld1 ind level und feld2 in passwort packen egal ob das von den Variabel Typen passt oder nicht. Habe ich das so richtig verstanden?

    wäre ein ziemlich großer split oder? Und wie genau muss ich mir das vorstellen. Sorry kenne mich noch nicht so gut mit dem StrickenKid plugin aus.


    aus PHP kenne ich die funktion: Variable = mysql_fetch_array(Query); und dann werden die einzelnen Werte der Felder in Variable[0], Variable[1], usw. gespeichert.


    Ist sowas ähnliches auch möglich?

    Guten Tag,


    Als ich angefangen hatte mit MySQL in PAWN hatte ich 0 Ahnung von Mysql. Dies hat sich nun mitlerweile geändert.
    Außerdem benutze ich das BlueG Plugin, ich möchte aber umsteigen.


    Nun habe ich eine Frage, da es total unnötig ist jedesmal nur ein Feld mit Hilfe eines stocks auszulesen und das in eine Variable zu speichern.
    Ich möchte lieber eine "große" Abfrage machen wo ich mehrere felder auslese und diese einzelnen Felder dann in den verschiedenen variablen speichern.


    Vorhererige Abfragen:
    Select Feld1 FROM Tabelle Where Etwas = Ist
    Select Feld2 FROM Tabelle Where Etwas = Ist
    Select Feld3 FROM Tabelle Where Etwas = Ist


    Neue Abfrage:


    Select * From Tabelle Where Etwas = Ist
    oder
    Select Feld1, Feld2, Feld3 FROM Tabelle Where Etwas = Ist


    Nun möchte ich gerne wissen wie ich die einzelnen Werte aus den Feldern in die variablen bekomme. Dazu reicht mir ein kleines Beispiel am besten hier an meinem beispiel angeknüpft.
    Wichtig (!) : Ich benutze nicht mehr das BlueG sondern das StickenKid Plugin


    Lieben Gruß
    Simon

    Also ich habe das BlueG Plugin und auch nur die R6 version. Aber laut den Beiträgen hier würde ich dir das andere Raten.
    Da ich es eh nun auf R7 umschreiben möchte kann ich es genauso gut auch aufs andere komplett umschreiben und bin einfach mal so frech und benutzte dieses Thema hier und zu fragen ob es da eventuell eine kleine übersicht gibt was die Befehle genau machen.
    Wäre bestimmt auch zu deinem Vorteil.


    So bitte abspeichern und nun dein Script in "Selfmade_Tamer" umbennen.

    Ein wenig Selbstinitiative wäre auch gut :)


    Also die Funktion von GetPlayerName geht so:
    GetPlayerName(playerid, Variable, Größe der Variable);
    Also nun erstmal:
    new SpielerName[MAX_PLAYER_NAME]; //MAX_PLAYER_NAME ist in den von Samp mitgelieferten Includes schon definiert.
    GetPlayerName(playerid,SpielerName,MAX_PLAYER_NAME); //Nun besitzt die Variable SpielerName den Wert des Namens also den Namen :D
    //inputtext enthält das was du eingegeben hast und nun vergleichen:
    if(!strcmp(SpielerName, inputtext, true)) //Ist gleich
    else //ist nicht gleich