Hilfe bei MySQL

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
  • Nabend liebe Leute,
    folgendes Problem...


    Ich möchte meinen Server auf MySQL umstellen... Datenbank wurde von einem Freund angelegt, der mir ein Interface über PHP scriptet... Der hat mir alles in die Datenbank reingeschmissen und ich will es nun mit meinem Script verwenden.


    Hier mal die vorhandene Datenbank...


    Ich nutze für meinen Server das Plugin sampmysql v0.14 (http://forum.sa-mp.com/index.php?topic=23931.510) bzw. (http://lostgangwarz.free.fr/samp_mysql_en.php). Nun hab ich aber das kleine Problem das ich es einfach nicht verstehe... Könnte mir jemand eine kurze Einleitung schreiben wie ich was anordne?


    Wie ich das Connecten und Disconnecten zum Server mache hab ich bereits gecheckt... Aber ich versteh noch nicht wie ich die einzelnen Spalten wie "username" oder "passwort" beschrifte oder lese oder erstelle...


    Ich hoffe mir kann jemand helfen


    LG Wutschkooo


    //edit 1: Also ich hab jetzt schon eine Anleitung gefunden wo ich so eine Art index fürs Internet angeben kann... Das hat schonmal geklappt... (http://www.wi.freeroam.hqsys.de/Stats.php) aber wie bekomm ich das mit der Serverabfrage hin?

  • Ich hab es hier gelernt: MYSQL Tutorial


    UPDATE - Brauchst du um etwas auf der Database zB beim User neu festzulegen (Update von irgendwas,Score,Money etc).


    SELECT - Brauchst du um einen Eintrag aus der Database auszulesen.Wenn du beispielweise das Geld,Adminlevel etc auslesen möchtest.


    INSERT - Brauchst du um einen neuen Eintrag zB User in die Database hinzuzufügen.


    Ansonsten schau in ModernTopia nach und frag nochmal.Bin selber nicht gut in MYSQL,hab es trotzdem irgendwie geschafft mich da zurechtzufinden.

  • ich hab mal aus modern topia rausgeholt und umgestellt so wie ich es brauche....


    public OnPlayerUpdate(playerid) // by Luk0r v1.2
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid])
    {
    MySQLCheckConnection();
    new query[MAX_STRING];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof playername);
    format(query, sizeof query, "UPDATE username SET ");
    MySQLUpdatePlayerInt(query, playername, "score", GetPlayerScore(playerid));
    MySQLUpdatePlayerInt(query, playername, "money", GetPlayerMoney(playerid));
    MySQLUpdatePlayerInt(query, playername, "adminlevel", PlayerInfo[playerid][pAdmin]);
    MySQLUpdatePlayerInt(query, playername, "warns", PlayerInfo[playerid][pWarn]);
    MySQLUpdatePlayerInt(query, playername, "kicks", PlayerInfo[playerid][pKicks]);
    MySQLUpdatePlayerInt(query, playername, "ban", PlayerInfo[playerid][pBan]);
    MySQLUpdatePlayerInt(query, playername, "login", PlayerInfo[playerid][pLogin]);
    MySQLUpdateFinish(query, playername);
    }
    }
    return 1;
    }


    Aber dumm das ich nochimmer 4 Errors hab und zwar in Zeile mit "new query"....
    NeS-Reg.pwn(2199) : error 017: undefined symbol "MAX_STRING"
    NeS-Reg.pwn(2199) : error 009: invalid array size (negative, zero or out of bounds)
    NeS-Reg.pwn(2199) : error 036: empty statement
    NeS-Reg.pwn(2199) : fatal error 107: too many error messages on one line


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



    4 Errors.


    Kann mir da jemand helfen?

  • Ich habe ein Problem mit MySQL in meinem Script.
    Ich hab mich bei Modern Topia bedient mit den Sachen und habe nur ein Problem.
    MySQLUpdatePlayerInt hab ich etwas umgeschrieben, das der in meiner Datenbank nicht nach der
    ID des Spielers guckt zum updaten, sondern nach dem Namen...


    Also der Forward sieht so aus: "forward MySQLUpdatePlayerInt(query[], playername, sqlvalname[], sqlupdateint);"
    Und das Public so:
    public MySQLUpdatePlayerInt(query[], playername, sqlvalname[], sqlupdateint) // by Luk0r
    {
    MySQLUpdateBuild(query, playername);
    new updval[64];
    format(updval, sizeof(updval), "%s=%d", sqlvalname, sqlupdateint);
    strcat(query, updval, MAX_STRING);
    return 1;
    }


    Nun hab ich es bei meinem "OnPlayerUpdate(playerid)" wiefolgt benutzt:

    public OnPlayerUpdate(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid])
    {
    MySQLCheckConnection();
    new query[MAX_STRING];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof Name);
    format(query, sizeof query, "UPDATE username SET ");
    *MySQLUpdatePlayerInt(query, Name, "score", GetPlayerScore(playerid));
    *MySQLUpdatePlayerInt(query, Name, "money", GetPlayerMoney(playerid));
    *MySQLUpdatePlayerInt(query, Name, "adminlevel", PlayerInfo[playerid][pAdmin]);
    *MySQLUpdatePlayerInt(query, Name, "warns", PlayerInfo[playerid][pWarn]);
    *MySQLUpdatePlayerInt(query, Name, "kicks", PlayerInfo[playerid][pKicks]);
    *MySQLUpdatePlayerInt(query, Name, "ban", PlayerInfo[playerid][pBan]);
    *MySQLUpdatePlayerInt(query, Name, "login", PlayerInfo[playerid][pLogin]);
    *MySQLUpdateFinish(query, Name);
    }
    }
    return 1;
    }


    Dummerweiße bekomm ich aber so einen doofen Error: " error 035: argument type mismatch (argument 2)" in alles Zeilen die mit * gekennzeichnet sind...
    Kann mir da jemand von euch helfen?

  • Dann musst du auch im forward angeben das der 2 Parameter ein String ist.


    forward MySQLUpdatePlayerInt(query[], playername[], sqlvalname[], sqlupdateint);


    public MySQLUpdatePlayerInt(query[], playername[], sqlvalname[], sqlupdateint) // by Luk0r
    {
    MySQLUpdateBuild(query, playername);
    new updval[64];
    format(updval, sizeof(updval), "%s=%d", sqlvalname, sqlupdateint);
    strcat(query, updval, MAX_STRING);
    return 1;
    }