MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)

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
  • Man ey. Das geht nicht :(


    Bei mir speichert der nur den ersten User (mich) aber meine Kumpels nicht O.o

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Super Tutorial :thumbup:
    hab nur ein kleines Problem mit login/register:


    Bei dem Register Befehl bekomm ich wegen das:
    mysql_CreateAccount(playerid, udb_hash(params));
    Diesen Error:
    Falsche Parameter (zuwenige/zuviele)


    Und bei dem Login Befehl wegen:
    pass=mysql_GetInt("Accounts", "Passwort", "Name",pInfo[playerid][pname]);
    Diesen Error:
    Array-Index fehlt (bspw. Array[1], Name: "pass")

  • Beim 2. haste nur
    new pass;
    gemacht.
    Da müsstest du
    new pass[128]; machen ;)



    ___________________________________________________________________________________________________________________________________________________
    Frage von mir:


    Ich habe versucht dieses Dynamische Fraktionsfahrzeuge System in mein Selfmade einzubauen.
    Habe auch versucht dies auf MySQL umzuschreiben.


    Jedoch startet sich jetzt der Server nicht mehr... muss ich eventuell für jedes Fahrzeug einen "Namen" geben? Damit er dies dann rausliest?



    Grüße, Deadmau5.

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Hab hier mal die publics... vielleicht könnt ihr damit ja was anfangen :/



    forward LoadFractionCars2();
    public LoadFractionCars2()
    {
    new fc;while(fc<MAX_FRACTION_CARS)
    {
    FractionCars[fc][fVehid] = mysql_GetInt2("frakcars", "ModelID", "IDtoGet", fc);
    FractionCars[fc][fPos][0]= mysql_GetFloat2("frakcars", "PosX", "IDtoGet", fc);
    FractionCars[fc][fPos][1]= mysql_GetFloat2("frakcars", "PosY", "IDtoGet", fc);
    FractionCars[fc][fPos][2]= mysql_GetFloat2("frakcars", "PosZ", "IDtoGet", fc);
    FractionCars[fc][fCol][0]= mysql_GetInt2("frakcars", "Farbe1", "IDtoGet", fc);
    FractionCars[fc][fCol][1]= mysql_GetInt2("frakcars", "Farbe2", "IDtoGet", fc);
    FractionCars[fc][fFraction] = mysql_GetInt2("frakcars", "Fraktion", "IDtoGet", fc);
    FractionCars[fc][fCarid] = CreateVehicle(FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],-255);
    }
    fc++;
    return printf(" '%d' Fraktionsfahrzeug(e) wurden geladen & erstellt.",fc);
    }
    forward SaveFractionCars2();
    public SaveFractionCars2()
    {
    new fc;while(fc<MAX_FRACTION_CARS)
    {
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
    {
    mysql_SetInt("frakcars", "ModelID",FractionCars[fc][fVehid], "IDtoGet", fc);
    mysql_SetFloat2("frakcars", "PosX",FractionCars[fc][fPos][0], "IDtoGet", fc);
    mysql_SetFloat2("frakcars", "PosY",FractionCars[fc][fPos][1], "IDtoGet", fc);
    mysql_SetFloat2("frakcars", "PosZ",FractionCars[fc][fPos][2], "IDtoGet", fc);
    mysql_SetInt("frakcars", "Farbe1",FractionCars[fc][fCol][0], "IDtoGet", fc);
    mysql_SetInt("frakcars", "Farbe2",FractionCars[fc][fCol][1], "IDtoGet", fc);
    mysql_SetInt("frakcars", "Fraktion",FractionCars[fc][fFraction], "IDtoGet", fc);
    }
    }fc++;
    }


    Und hier noch die ORIGINALEN Publics, vielleicht wäre ja jemand so nett und könnte mir das umschreiben:



    public LoadFractionCars(){
    if(!fexist(Fraction_Car_File)){
    new File:tfFile=fopen(Fraction_Car_File,io_write);
    fclose(tfFile);
    }
    new File:fFile=fopen(Fraction_Car_File,io_read),Content[512],fc;
    while(fread(fFile,Content)){
    StripNewLine(Content);
    sscanf(Content,"dffffddd",FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],FractionCars[fc][fFraction]);
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
    {
    FractionCars[fc][fCarid] = CreateVehicle(FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],-255);
    //FractionCars[fc][fLock] = true;
    fc++;
    }
    }
    fclose(fFile);
    return printf(" '%d' Fraktionsfahrzeug(e) wurden geladen & erstellt.",fc);
    }
    public SaveFractionCars(){
    if(fexist(Fraction_Car_File)) fremove(Fraction_Car_File);
    new File:fFile=fopen(Fraction_Car_File,io_append),Content[512];
    new fc;while(fc<MAX_FRACTION_CARS){
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
    format(Content,sizeof(Content),"%d %.3f %.3f %.3f %.3f %03d %03d %02d\r\n",FractionCars[fc][fVehid],FractionCars[fc][fPos][0],FractionCars[fc][fPos][1],FractionCars[fc][fPos][2],FractionCars[fc][fPos][3],FractionCars[fc][fCol][0],FractionCars[fc][fCol][1],FractionCars[fc][fFraction]);
    fwrite(fFile,Content);
    }fc++;
    }return fclose(fFile);
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Du ich hab schon extra neue stocks erstellt:



    stock mysql_GetInt2(Table[], Field[], Where[], Is)
    stock Float:mysql_GetFloat2(Table[], Field[], Where[], Is)
    stock mysql_SetFloat2(Table[], Field[], Float:To, Where[], Where2)


    Aber vielleicht muss ich ja extra "Namen" für die Fahrzeuge anglegen?
    Jedoch blick ich nicht, wie das mit den namen funktioniert, einfach ein A für das erste, ein B fürs 2. aber wie soll ich das machen?


    Das ist halt so ne Frage :(

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • ich habe so in etwa das gleiche problem wie du. bei mir wollen die autos nicht erscheinen.


    also ich habe das mit ID gemacht also folgender maßen und außerdem mit einer for schleife nicht mit einer while schleife obwohl das nicht viel unterschied ist:

    for(new i = 0; i < MAX_VEHICLES;i++)
    {
    new string[256];
    new carid = CreateVehicle(CarInfo[i][modelid],CarInfo[i][CoordX],CarInfo[i][CoordY],CarInfo[i][CoordZ],CarInfo[i][Rotation],CarInfo[i][farbe1],CarInfo[i][farbe2],-1);
    format(string,sizeof(string),"%d",carid);
    CarInfo[i][modelid] = mysql_GetInt("autos", "Modelid", "ID",string);
    CarInfo[i][besitzer] = mysql_GetInt("autos","Besitzer","ID",string);
    CarInfo[i][CoordX] = mysql_GetFloat("autos","KoordinateX","ID",string);
    CarInfo[i][CoordY] = mysql_GetFloat("autos","KoordinateY","ID",string);
    CarInfo[i][CoordZ] = mysql_GetFloat("autos","KoordinateZ","ID",string);
    CarInfo[i][Rotation] = mysql_GetFloat("autos","Rotation","ID",string);
    CarInfo[i][farbe1] = mysql_GetInt("autos","Farbe1","ID",string);
    CarInfo[i][farbe2] = mysql_GetInt("autos","Farbe2","ID",string);
    }

  • ne ich hab extra noch das IDtoGet gemacht, in der Table, weil ID ist ja wie bei den Spielern, eine ID, welche nicht verändert wird / werden darf was auch immer ^^

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • //edit mein Fehler hab das mit dem Login/Register falsch gemacht
    bekomme jetzt aber ein error bei:
    if(!strcmp(udb_hash(params), mysql_ReturnPasswort(name), true))
    Error:
    Zeile (7188) : Falsche Anzahl an Parametern
    und bei:
    mysql_CreateAccount(playerid, udb_hash(params));
    Diesen:
    Falsche Parameter (zuwenige/zuviele)

    Einmal editiert, zuletzt von Tommyx3 ()

  • Wenn ich bei
    stock LoadPlayer(playerid)
    und
    stock SavePlayer(playerid)
    eine neue sache hinzufüge macht es das dann automatich in der mysql datenbank oder muss ich das da auch anpassen?

    Das Originale SOR ( Street´s of Reallife ) seit 03.10.2009

  • ich habe in der Datenbank Admin hinzugefügt und es so ins script eingebunden wie es auch bei den anderen sachen ist (z.B. Level) aber wenn ich ein Admin befehl mache kommt "Du bist kein Admin".


    Datenbank:


    Befehl:
    dcmd_a(playerid,params[])
    {
    new message[128];
    if(sscanf(params,"s",message))
    {
    return SendClientMessage(playerid,COLOR_RED,"[Benutzung]: /a [Nachricht]");
    }
    if(SpielerInfo[playerid][pAdmin] < 1)
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    }
    else
    {
    new name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"%d Admin %s: %s" ,SpielerInfo[playerid][pAdmin],name,message);
    SendAdminMessage(COLOR_YELLOW,string);
    }
    return 1;
    }


    Und das Laden von der Datenbank:
    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts","Admin","Name", SpielerInfo[playerid][pAdmin]);
    }
    return 1;
    }


    MFG


    NewMelone


    /edit


    Habe einfach mit
    mysql_GetInt eine abfrage dran gesetzt und habe das Problem gelöst.


    Zitat von Dj G4bby

    It`s nice, to be important, but it`s more important to be nice!



    Einmal editiert, zuletzt von NewMelone ()

  • if(dialogid == DIALOG_REGSCHRITT3)
    {
    if(response)
    {
    new alter = strval(inputtext);
    if(alter < 99 || 12 > alter)
    {
    SpielerInfo[playerid][pAlter] = alter;
    mysql_SetInt("accounts", "Alter", SpielerInfo[playerid][pAlter], "Name", SpielerInfo[playerid][pName]);
    format(string,sizeof(string),"Artz: Hmm, ok Sie sind also %d Jahre jung.",alter);
    SendClientMessage(playerid, FARBE_WEIS, string);
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGSCHRITT3,DIALOG_STYLE_INPUT,"{FFFFFF}Alter","{FFFFFF}Error: Sie müssen eine Zahl zwischen 12-99 eingeben.\nWie alt sind Sie 12-99Jahre:","Bestätigen","");
    }
    }
    if(!response)
    {
    }
    }


    So mein Problem ist das, das Alter nicht in der Mysql Datenbank gespeichert werden möchte. Der Status bleibt immer 0 Jahre.
    Aber wenn er das abschickt steht im string der ClientMessage das Alter richtig, das finde ich i-wie komisch.

    Du hast ein Design und benötigst einen Coder ? PM me !
    Referenzen sind vorhanden unter diesem Link.
    User Control Panel by DiZZerZ: hier klicken
    GTABlue WBB³ Design nur 5€: hier klicken

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